1
00:00:00,810 --> 00:00:06,000
Bienvenido nuevamente en el último video examinamos la segunda regla para determinar el valor de

2
00:00:06,030 --> 00:00:12,060
la palabra clave esta la regla implícita, la regla implícita establece que cuando la palabra clave está

3
00:00:12,090 --> 00:00:16,980
dentro de un objeto declarado, su valor siempre será el objeto principal más cercano.

4
00:00:16,980 --> 00:00:21,780
Una cosa para tener en cuenta estas reglas que estamos utilizando no es una parte oficial de la especificación JavaScript,

5
00:00:21,990 --> 00:00:23,710
por lo que no las encontrará allí.

6
00:00:23,730 --> 00:00:28,910
Estas reglas son solo una forma útil de hacer un seguimiento de cuál es el valor de la palabra clave.

7
00:00:29,310 --> 00:00:34,740
Al final del último video, vimos un ejemplo de cuándo el contexto de la palabra clave cambió inesperadamente

8
00:00:35,340 --> 00:00:36,850
en nuestro método Say hello.

9
00:00:36,940 --> 00:00:44,760
La propiedad de primer nombre no se definió porque la palabra clave ahora se refiere al objeto perro.

10
00:00:44,760 --> 00:00:50,280
Entonces, ¿qué queremos establecer explícitamente el valor de la palabra clave para que podamos forzarlo a ser el

11
00:00:50,280 --> 00:00:53,210
objeto de persona en lugar del objeto de perro?

12
00:00:53,220 --> 00:00:56,250
Aquí es donde entra la tercera regla.

13
00:00:56,250 --> 00:01:01,800
Cada vez que vea los métodos aplicar o vincular llamada, podrá determinar fácilmente cuál será el

14
00:01:01,830 --> 00:01:08,250
valor de la palabra clave porque podrá establecerlo como el primer parámetro para llamar a aplicar y vincular.

15
00:01:08,700 --> 00:01:11,150
Antes de comparar y contrastar estos tres métodos.

16
00:01:11,220 --> 00:01:17,610
que solo pueden ser utilizados por funciones y no por ningún otro tipo de datos como strings booleans u objetos.

17
00:01:17,610 --> 00:01:24,740
Una cosa que hay que recordar es que solo se pueden usar en las funciones call apply y bind o en métodos

18
00:01:24,750 --> 00:01:29,640
El primer método del que vamos a hablar es llamar al primer argumento para llamar al método es

19
00:01:29,640 --> 00:01:32,670
lo que quieras que sea el valor de la palabra clave.

20
00:01:32,670 --> 00:01:37,370
Esto se llama comúnmente este ARG y se puede configurar para lo que quieras.

21
00:01:37,530 --> 00:01:43,350
Los argumentos después de este ARG son cualquier parámetro que quiera pasar a la función que está

22
00:01:43,350 --> 00:01:49,020
cambiando el contexto de la palabra clave. Esto dentro de los sonidos es confuso pero tendré más

23
00:01:49,020 --> 00:01:50,550
sentido cuando veamos un ejemplo.

24
00:01:50,550 --> 00:01:55,620
tener un número infinito de argumentos, separamos cada una de ellas con una coma al usar la llamada.

25
00:01:55,680 --> 00:01:57,080
Y como una función puede

26
00:01:57,150 --> 00:02:03,230
Finalmente, cuando se utiliza el método de llamada en una función, esa función se invoca inmediatamente.

27
00:02:03,230 --> 00:02:04,600
Ahora pasemos a una trama.

28
00:02:04,920 --> 00:02:11,940
Aplicar es casi idéntico a la llamada, excepto que aplicar solo toma dos parámetros como máximo, al igual que llamar es

29
00:02:11,940 --> 00:02:15,630
lo que queremos que sea el valor de la palabra clave.

30
00:02:15,630 --> 00:02:17,700
Llamamos a esto ARG.

31
00:02:17,880 --> 00:02:23,190
El segundo es un conjunto de argumentos que queremos pasar a la función en la que estamos

32
00:02:23,190 --> 00:02:25,600
cambiando el valor de la palabra clave this.

33
00:02:25,680 --> 00:02:27,060
Ahora examinemos bind.

34
00:02:27,330 --> 00:02:32,490
Bind es casi idéntico a llamar excepto en lugar de invocar la función de inmediato.

35
00:02:32,550 --> 00:02:35,070
Bind devuelve una definición de función.

36
00:02:35,490 --> 00:02:38,410
Recapitulemos rápidamente lo que quiero decir con definición de función.

37
00:02:38,430 --> 00:02:43,270
Voy a hacer una función llamada primera función y va a devolver la cadena de hola.

38
00:02:43,650 --> 00:02:47,570
Si no invoco la función sino que examino la variable que creé.

39
00:02:47,760 --> 00:02:50,480
Me devolvieron una definición de función.

40
00:02:50,490 --> 00:02:55,900
con un valor diferente de la palabra clave this e invocarlas en un momento posterior.

41
00:02:55,980 --> 00:02:59,710
Bind es una función extremadamente poderosa ya que podemos ver funciones

42
00:02:59,850 --> 00:03:05,040
Bind es bastante valioso cuando se trabaja con código asíncrono, como establecer el tiempo de espera y es

43
00:03:05,100 --> 00:03:08,720
el componente básico para técnicas de programación más avanzadas, como la mensajería.

44
00:03:08,790 --> 00:03:15,180
Recapitulemos rápidamente estos tres métodos llamados aplicar y vincular que se utilizan para decir explícitamente el valor de la

45
00:03:15,180 --> 00:03:15,780
palabra clave.

46
00:03:15,810 --> 00:03:21,000
Esto los usamos cuando queremos un control total sobre a qué se referirá la palabra clave.

47
00:03:21,300 --> 00:03:27,480
Por lo tanto, tendrá prioridad sobre las primeras dos reglas. Call and apply invocará inmediatamente la función a la que están

48
00:03:27,600 --> 00:03:32,940
llamadas, mientras que enlazará o devolverá una nueva definición de función con el valor de la palabra clave.

49
00:03:32,940 --> 00:03:36,640
Esto explícitamente establece finalmente call y bind.

50
00:03:36,660 --> 00:03:42,430
Excepto un número infinito de parámetros, mientras que aplicar solo incluye dos en el siguiente video.

51
00:03:42,450 --> 00:03:48,150
Veremos un ejemplo de llamada y cómo podemos usarlo para establecer explícitamente el valor de la palabra clave this.

52
00:03:48,320 --> 00:03:48,750
Mira eso
