1
00:00:00,300 --> 00:00:06,060
Bienvenido de nuevo en el video anterior vimos que cuando se usa la nueva palabra clave se agrega una

2
00:00:06,150 --> 00:00:10,310
propiedad al objeto creado a partir de la función de constructor llamada donder produ.

3
00:00:10,560 --> 00:00:14,780
Esta propiedad se vincula con la propiedad del prototipo en la función de constructor.

4
00:00:15,330 --> 00:00:21,120
Pero, ¿qué valor tiene esta propiedad prototipo de la propiedad prototipo? Es un objeto que puede

5
00:00:21,120 --> 00:00:23,440
tener métodos y propiedades colocados en él.

6
00:00:23,520 --> 00:00:30,090
Estos métodos y propiedades son compartidos y accesibles por cualquier objeto creado a partir de esa función

7
00:00:30,090 --> 00:00:30,770
de constructor.

8
00:00:30,780 --> 00:00:37,710
en este ejemplo, cuando se agrega una propiedad en el prototipo llamado instructor, se establece que el valor sea verdadero.

9
00:00:38,010 --> 00:00:40,470
Cuando se usa la palabra clave nueva

10
00:00:40,470 --> 00:00:46,080
Ahora todos nuestros objetos que se han creado a partir de este constructor utilizando la palabra clave new tienen acceso a

11
00:00:46,080 --> 00:00:47,910
is is instr. propiedad.

12
00:00:48,450 --> 00:00:49,920
Pero cómo en el mundo sucedió eso.

13
00:00:50,130 --> 00:00:56,310
Agregamos una propiedad en el objeto prototipo persona arriba y, de repente, dos objetos aparentemente

14
00:00:56,340 --> 00:00:58,610
no relacionados tienen acceso a ella.

15
00:00:58,620 --> 00:01:01,080
La respuesta está en el protocolo.

16
00:01:01,380 --> 00:01:08,510
Como estos objetos tienen un enlace al prototipo de persona dot, no pueden acceder a nada dentro de él.

17
00:01:08,520 --> 00:01:15,260
De hecho, esta es la forma exacta en que javascript encuentra métodos y propiedades en los objetos.

18
00:01:15,450 --> 00:01:19,130
Y lo que acabamos de describir es algo que se llama la cadena de prototipos.

19
00:01:19,350 --> 00:01:21,410
Vamos a hablar un poco más sobre eso.

20
00:01:21,510 --> 00:01:27,510
Acabamos de ver que cuando agregamos una propiedad al objeto prototipo de persona, era accesible desde objetos

21
00:01:27,510 --> 00:01:31,120
creados por esa función de constructor usando la nueva palabra clave.

22
00:01:31,470 --> 00:01:37,110
Luego dijimos que la razón por la que esto era posible se debe a la forma en que javascript

23
00:01:37,140 --> 00:01:38,210
busca métodos y propiedades.

24
00:01:38,490 --> 00:01:40,110
Vamos a mostrar un ejemplo.

25
00:01:40,110 --> 00:01:44,920
Voy a hacer una variable llamada R y establecerla igual a una matriz vacía.

26
00:01:44,940 --> 00:01:48,250
Lo que realmente hice fue una abreviatura para escribir una nueva matriz.

27
00:01:48,510 --> 00:01:53,770
Utilizo el constructor incorporado en javascript llamado array y encuentro un nuevo objeto a partir de él.

28
00:01:53,820 --> 00:01:59,400
También sabemos en javascript que nuestras matrices tienen un método llamado Push que agrega algo al final

29
00:01:59,430 --> 00:02:00,450
de una matriz.

30
00:02:00,660 --> 00:02:05,120
Pero, ¿dónde se define este método push y cómo javascript sabe dónde encontrarlo?

31
00:02:05,130 --> 00:02:08,060
La respuesta una vez más está en Dunder Prato.

32
00:02:08,510 --> 00:02:09,250
Vamos a cancelar eso.

33
00:02:09,250 --> 00:02:09,640
D'oh.

34
00:02:09,660 --> 00:02:17,070
La variable R y vemos que todo este objeto tiene una propiedad llamada lenth. Pero, ¿de dónde viene

35
00:02:17,070 --> 00:02:18,090
el método push?

36
00:02:18,420 --> 00:02:23,250
Bueno, examinemos qué es el Dunder Prato de esta nuestra variable.

37
00:02:23,250 --> 00:02:31,590
De hecho, es el prototipo de matriz de puntos que podemos demostrar que, al mostrar que están bajo el triple de

38
00:02:31,680 --> 00:02:35,120
Prato, un prototipo de radar se evalúa como verdadero.

39
00:02:35,130 --> 00:02:40,320
Entonces, la forma en que javascript encuentra los métodos y las propiedades es mirando el objeto y

40
00:02:40,320 --> 00:02:46,020
si no puede encontrar el método o la propiedad que está buscando va a los objetos donder proto.

41
00:02:46,020 --> 00:02:49,810
Esto realmente sigue sucediendo hasta que se encuentre la propiedad o el método.

42
00:02:49,950 --> 00:02:56,010
Y si no se encuentra la expresión se evalúa como indefinida, podemos ver esto aún

43
00:02:56,010 --> 00:02:58,260
más con otro ejemplo en javascript.

44
00:02:58,260 --> 00:03:04,800
Cada objeto tiene un método llamado tiene propiedad propia que devuelve verdadero si el objeto tiene una propiedad

45
00:03:05,160 --> 00:03:08,370
especificada como un parámetro del método has on property.

46
00:03:08,430 --> 00:03:09,600
Qué significa eso.

47
00:03:09,630 --> 00:03:12,300
A veces, un ejemplo de código vale más que mil palabras.

48
00:03:12,300 --> 00:03:15,670
Regresemos a nuestra variable.

49
00:03:15,750 --> 00:03:22,170
Vamos a tratar de ver si nuestra variable tiene una propiedad propia de longitud pero dónde está

50
00:03:22,170 --> 00:03:23,460
ubicado este método.

51
00:03:23,460 --> 00:03:26,550
Veamos nuestra variable con la consola dot DIR.

52
00:03:26,640 --> 00:03:30,800
También puede simplemente digitar Diyar pero no parece estar aquí.

53
00:03:31,080 --> 00:03:32,680
Entonces, ¿qué hace javascript?

54
00:03:32,700 --> 00:03:39,240
Sube la cadena de prototipos y encuentra el siguiente bajo producción, podemos ver que el próximo bajo Prato

55
00:03:39,240 --> 00:03:41,090
es el prototipo del objeto.

56
00:03:41,310 --> 00:03:43,810
Y aquí es donde se encuentra ese método.

57
00:03:44,010 --> 00:03:47,040
Podemos ilustrar esto también con el diagrama.

58
00:03:47,040 --> 00:03:51,150
Una vez más, los círculos son funciones y los cuadrados son objetos.

59
00:03:51,150 --> 00:03:56,220
Aquí vemos una variable R que tiene un donador Prato de un prototipo de radar.

60
00:03:56,220 --> 00:04:03,150
El prototipo de matriz ascendente también es un objeto y tiene su propio donador Prato que apunta

61
00:04:03,720 --> 00:04:08,840
al prototipo de objeto. Cada objeto en javascript contiene el objeto del prototipo.

62
00:04:08,880 --> 00:04:15,360
Ahí es donde los métodos como la propiedad propia provienen del Dunder Prato del objeto que el prototipo es

63
00:04:15,660 --> 00:04:19,480
nulo y aquí es donde se detiene la cadena del prototipo.

64
00:04:19,500 --> 00:04:25,170
cómo javascript mirará un objeto y verá si existe el método o la propiedad que está buscando.

65
00:04:25,170 --> 00:04:30,170
Para recapitular analizamos cómo javascript encuentra métodos y propiedades usando la cadena de prototipos, vimos

66
00:04:30,330 --> 00:04:36,190
Y si no, irá a esos objetos Dondre Prato y repetirá hasta que no haya otro programa Dondre en

67
00:04:37,140 --> 00:04:38,040
el siguiente video.

68
00:04:38,070 --> 00:04:42,710
Hablaremos más sobre el valor de la propiedad del prototipo y practicaremos con un ejercicio.

69
00:04:42,720 --> 00:04:43,420
Véanos en
