1
00:00:00,950 --> 00:00:06,390
Ahora que tenemos una buena idea de cómo funciona la primera regla cuando la palabra clave

2
00:00:06,420 --> 00:00:12,940
está fuera de un objeto declarado, veamos qué sucede cuando la palabra clave está dentro de un objeto declarado.

3
00:00:12,960 --> 00:00:18,600
La segunda regla que llamamos regla implícita u objeto indica que cuando la palabra clave se

4
00:00:18,660 --> 00:00:26,120
encuentra dentro de un objeto declarado, el valor de la palabra clave siempre será el objeto principal más cercano que haya

5
00:00:26,130 --> 00:00:27,100
muchas palabras.

6
00:00:27,300 --> 00:00:30,640
Veamos a qué nos referimos al mirar el código en la diapositiva.

7
00:00:30,660 --> 00:00:33,590
Aquí tenemos un objeto Person pero la clave es un primer nombre.

8
00:00:33,630 --> 00:00:35,910
Saluda y determina el contexto.

9
00:00:36,090 --> 00:00:41,350
Comencemos con el método decir hi dentro de esta función, estamos devolviendo el valor de la cadena.

10
00:00:41,350 --> 00:00:45,960
Hola concatenado con el valor de la propiedad de primer nombre en la palabra clave.

11
00:00:45,960 --> 00:00:52,650
Esto Como vemos que la palabra clave es dentro de un objeto declarado, buscamos en el objeto padre más

12
00:00:52,740 --> 00:00:55,710
cercano para descubrir el valor de la palabra clave.

13
00:00:55,710 --> 00:01:02,640
Esto podemos ver que el objeto principal más cercano es la variable persona, lo que significa que el valor de la

14
00:01:02,640 --> 00:01:03,210
palabra clave.

15
00:01:03,210 --> 00:01:07,010
Este es el objeto de persona.

16
00:01:07,020 --> 00:01:09,520
Ahora examinemos el método de determinar el contexto.

17
00:01:09,540 --> 00:01:11,970
Esta función debe devolver verdadero o falso.

18
00:01:11,970 --> 00:01:16,260
Tenga en cuenta que estamos utilizando triple equals, que siempre se evaluará a un booleano.

19
00:01:16,260 --> 00:01:18,320
¿Qué crees que devolverá esta función?

20
00:01:18,330 --> 00:01:19,940
Piensa dónde ves la palabra clave.

21
00:01:19,940 --> 00:01:24,290
Esto es dentro o fuera de un objeto declarado.

22
00:01:24,390 --> 00:01:29,850
Vemos que la palabra clave es dentro del objeto persona, lo que significa que será igual a

23
00:01:29,940 --> 00:01:30,780
la persona objeto.

24
00:01:30,900 --> 00:01:35,390
Entonces esta expresión debería ser verdadera antes de continuar.

25
00:01:35,430 --> 00:01:41,100
Tómese un segundo para revisar este código y colóquelo en la consola de Chrome o editor de texto para ver exactamente lo

26
00:01:41,100 --> 00:01:41,840
que está sucediendo.

27
00:01:42,200 --> 00:01:47,370
Ahora dijimos en la regla implícita que el valor de la palabra clave siempre será el objeto

28
00:01:47,400 --> 00:01:48,300
principal más cercano.

29
00:01:48,510 --> 00:01:52,000
Pero veamos cómo las cosas se vuelven un poco complicadas con los objetos anidados.

30
00:01:52,500 --> 00:01:53,940
Vamos a recorrer este código.

31
00:01:53,970 --> 00:01:58,960
Aquí vemos que tenemos una variable persona, pero esta vez se llama a la propiedad de primer nombre.

32
00:01:59,040 --> 00:02:02,700
Una vez más tenemos un método hi y determinamos el método de contexto.

33
00:02:02,700 --> 00:02:06,570
Tómese un momento y piense en lo que devolverán esas funciones cuando las llame.

34
00:02:06,570 --> 00:02:10,770
Ahora observe que tenemos una clave adicional en el objeto de persona llamado perro.

35
00:02:10,890 --> 00:02:14,110
El valor del burro es en realidad otro objeto.

36
00:02:14,190 --> 00:02:19,180
Así que vamos a examinar el objeto anidado dentro del objeto perro.

37
00:02:19,200 --> 00:02:24,360
Tenemos una clave de decir hola, que es una función que devuelve la cadena Hola unida con la palabra clave.

38
00:02:24,480 --> 00:02:32,130
Al usar las dos reglas para determinar el valor de la palabra clave, se pausa el video y se

39
00:02:32,130 --> 00:02:38,870
intenta averiguar cuál es el valor de la palabra clave this dentro de la función say hello.

40
00:02:38,880 --> 00:02:40,230
Entonces podrías pensarlo.

41
00:02:40,410 --> 00:02:44,230
¿Cuál es la palabra clave que se refiere a la persona objeto del objeto del perro?

42
00:02:44,280 --> 00:02:45,720
O tal vez el objeto global.

43
00:02:45,930 --> 00:02:51,090
Bueno, volvamos a nuestra primera regla que establece que si la palabra clave this no está

44
00:02:51,120 --> 00:02:53,820
dentro de un objeto declarado, será el objeto global.

45
00:02:53,820 --> 00:02:58,520
En este caso, vemos que la palabra clave es dentro de un objeto declarado llamado Persona.

46
00:02:58,770 --> 00:03:01,090
Entonces pasamos a la segunda regla.

47
00:03:01,170 --> 00:03:07,050
La segunda regla establece que el valor de la palabra clave siempre será el objeto primario más cercano.

48
00:03:07,050 --> 00:03:11,850
Aquí es donde las cosas se vuelven un poco complicadas a pesar de que el objeto declarado es persona.

49
00:03:11,940 --> 00:03:19,060
Hay un objeto dentro llamado Dog que es el objeto principal más cercano al método say hello.

50
00:03:19,110 --> 00:03:25,680
Ahora que sabemos que la palabra clave this dentro del método say hello se refiere al objeto dog, cuál es

51
00:03:25,680 --> 00:03:27,530
el valor de este material.

52
00:03:27,540 --> 00:03:32,180
Primer nombre dentro del método decir hola.

53
00:03:32,610 --> 00:03:37,870
Como el objeto perro no tiene una clave de primer nombre, el valor no estará definido.

54
00:03:38,160 --> 00:03:42,230
Entonces, ¿por qué no llamamos al método say hello escribiendo person dog?

55
00:03:42,270 --> 00:03:44,830
Diga hola, podemos ver que regresa.

56
00:03:44,830 --> 00:03:46,850
Hola indefinido

57
00:03:47,580 --> 00:03:54,750
También podemos ver que nuestra función de contexto determinada dentro del objeto perro devuelve falso porque

58
00:03:54,750 --> 00:04:02,450
la palabra clave this dentro de la función de determinar contexto ya no se refiere al objeto persona.

59
00:04:04,050 --> 00:04:07,760
Entonces, ¿cómo podemos solucionar esto o si queremos que nuestro método Say hello regrese?

60
00:04:07,770 --> 00:04:14,070
Hola, frío en lugar de hola indefinido, necesitarás alguna forma de cambiar explícitamente el valor de la palabra clave

61
00:04:14,080 --> 00:04:21,840
esto y eso es exactamente lo que aplica la llamada y las funciones de vinculación pueden hacer por nosotros en el siguiente video.

62
00:04:22,140 --> 00:04:27,990
Veremos la tercera regla para determinar el valor de la palabra clave this using call apply and bind.

63
00:04:28,060 --> 00:04:29,190
Las cosas se están volviendo emocionantes

64
00:04:29,190 --> 00:04:30,340
Nos vemos en el próximo video.
