1
00:00:00,480 --> 00:00:06,030
En el último video vimos cómo crear objetos a partir de funciones de constructor usando la nueva palabra clave en

2
00:00:06,030 --> 00:00:06,720
este video.

3
00:00:06,720 --> 00:00:11,690
Vamos a aprender a usar múltiples funciones de constructor sin duplicar el código.

4
00:00:11,700 --> 00:00:13,790
El material aquí va a ser un desafío.

5
00:00:13,860 --> 00:00:18,810
Así que asegúrese de haber visto la serie de videos sobre la palabra clave esto antes de seguir adelante.

6
00:00:18,810 --> 00:00:24,030
Ahora imaginemos que tenemos dos funciones de constructor, una para un automóvil y otra para una motocicleta.

7
00:00:24,300 --> 00:00:29,520
Aquí está el código para ambos y lo que vemos aquí no es nada especial, solo algunas funciones que

8
00:00:29,550 --> 00:00:31,660
construyen objetos usando la nueva palabra clave.

9
00:00:31,890 --> 00:00:34,000
Pero lo que no es bueno acerca de este código.

10
00:00:34,190 --> 00:00:38,010
Mira cuánto código estamos duplicando en la función de motocicleta.

11
00:00:38,400 --> 00:00:43,950
Sería realmente bueno si pudiéramos tomar prestado el código de la función de tarjeta y ponerlo en

12
00:00:43,950 --> 00:00:45,360
la función de motocicleta.

13
00:00:45,780 --> 00:00:53,040
Entonces, quizás piense por qué no llamamos a la función del automóvil dentro de la función de la motocicleta.

14
00:00:53,040 --> 00:00:59,760
El problema aquí es cuando llamamos a la función del automóvil la palabra clave que se refiere al objeto que se creará a

15
00:00:59,760 --> 00:01:01,620
partir de la función del automóvil.

16
00:01:01,890 --> 00:01:03,770
Pero eso es lo incorrecto.

17
00:01:03,780 --> 00:01:10,190
Lo que tenemos que hacer aquí es cambiar el valor de la palabra clave esto para que sea el objeto creado

18
00:01:10,190 --> 00:01:12,660
a partir de la función del ciclo motor.

19
00:01:12,780 --> 00:01:15,120
Entonces, ¿cómo podemos cambiar el valor de la palabra clave?

20
00:01:15,120 --> 00:01:21,600
Esto nos remonta a nuestra tercera regla de calcular el valor de la palabra clave esto con enlace explícito.

21
00:01:22,350 --> 00:01:28,890
Esto significa que queremos usar call apply o bind podemos descartar usando bind porque no queremos devolver una definición

22
00:01:28,950 --> 00:01:32,450
de función, así que vamos a elegir call o apply.

23
00:01:32,460 --> 00:01:38,220
Mejor aún, veamos ambos y veamos cuál podría ser una mejor opción como advertencia.

24
00:01:38,220 --> 00:01:41,260
El código que voy a mostrarle puede ser bastante confuso al principio.

25
00:01:41,550 --> 00:01:47,730
Así que siéntase libre de pausar el video intente leerlo primero y póngalo en la consola de Chrome para ver exactamente

26
00:01:47,790 --> 00:01:49,120
lo que está sucediendo.

27
00:01:49,140 --> 00:01:54,570
Entonces, la función del automóvil se ve igual, pero las cosas divertidas están sucediendo en la función de la motocicleta en

28
00:01:54,570 --> 00:01:57,000
lugar de duplicar el código de la función del automóvil.

29
00:01:57,120 --> 00:02:03,870
Invocamos la función del automóvil pero cambiamos el contexto de la palabra clave, esta es la palabra clave this.

30
00:02:03,930 --> 00:02:05,090
Qué significa eso.

31
00:02:05,490 --> 00:02:11,040
Bueno, piense en nuestro problema antes, cuando no usamos la llamada perdimos el contexto correcto de la palabra

32
00:02:11,040 --> 00:02:11,420
clave.

33
00:02:11,450 --> 00:02:14,070
Este es el valor correcto de la palabra clave.

34
00:02:14,070 --> 00:02:19,330
Esto debería ser cualquier objeto que se esté creando a partir de la función de la motocicleta.

35
00:02:19,380 --> 00:02:27,000
Cuando se utiliza la palabra clave nueva, la forma en que accedemos a ese objeto es usando la palabra clave this dentro de

36
00:02:27,000 --> 00:02:28,560
la función de la motocicleta.

37
00:02:28,620 --> 00:02:29,710
Esto es bastante confuso

38
00:02:29,760 --> 00:02:31,540
Así que intentémoslo de nuevo.

39
00:02:31,890 --> 00:02:34,940
Queremos eliminar la duplicación de nuestra función de motocicleta.

40
00:02:35,220 --> 00:02:41,100
haciendo es tomar prestado el código de la función del automóvil llamándolo dentro de la función del ciclo motor.

41
00:02:41,100 --> 00:02:42,420
Entonces, lo que estamos

42
00:02:42,420 --> 00:02:48,780
El problema aquí es que la palabra clave this inside of the car function no es la palabra clave

43
00:02:48,780 --> 00:02:50,170
this que queremos usar.

44
00:02:50,310 --> 00:02:56,010
Entonces tenemos que cambiar el valor de la palabra clave this to do que utilizamos la aplicación de llamador.

45
00:02:56,310 --> 00:03:02,190
Y como primer parámetro para llamar o aplicar, especificamos lo que nos gustaría que el valor de la

46
00:03:02,190 --> 00:03:04,470
palabra clave sea el valor que queremos.

47
00:03:04,470 --> 00:03:10,020
La palabra clave this to be es el objeto que se creará a partir de la función de motocicleta.

48
00:03:10,020 --> 00:03:16,260
La forma en que obtenemos acceso a ese objeto es usando la palabra clave this dentro de la función de motocicleta.

49
00:03:17,160 --> 00:03:24,120
Es por eso que el primer argumento para llamar o aplicar es la palabra clave this que se refiere al objeto creado a partir

50
00:03:24,180 --> 00:03:25,980
de la función de la motocicleta.

51
00:03:26,040 --> 00:03:30,740
Cuando se usa la nueva palabra clave si todavía está en problemas, no se preocupe.

52
00:03:30,870 --> 00:03:33,630
Estamos haciendo un javascript bastante avanzado aquí.

53
00:03:33,630 --> 00:03:36,300
Haga una pausa en el video y pruebe estos ejemplos de código.

54
00:03:36,300 --> 00:03:41,150
Y como siempre, háganos cualquier pregunta para que podamos usar la llamada o aplicar.

55
00:03:41,400 --> 00:03:47,460
aplica es una matriz de argumentos que se pasan a la función para que podamos colocar

56
00:03:47,460 --> 00:03:53,820
el modelo y el año en una matriz o podemos usar otra palabra clave especial. palabra clave.

57
00:03:53,820 --> 00:04:00,440
Pero recuerde que la única diferencia es el segundo parámetro con apply. El segundo parámetro que se

58
00:04:00,540 --> 00:04:06,630
Es posible que haya visto argumentos antes, pero si no es una lista de todos los argumentos que se

59
00:04:06,720 --> 00:04:09,610
pasan a una función, técnicamente no es una matriz.

60
00:04:09,780 --> 00:04:15,300
Pero, para nuestros propósitos, puede pensar que es uno por ahora. Aquí hay un ejemplo rápido usando la matriz de argumentos.

61
00:04:16,170 --> 00:04:21,480
Voy a hacer una función llamada lista de argumentos que devolverá los argumentos pasados ​​a la función.

62
00:04:22,170 --> 00:04:26,120
Ahora llamemos a los argumentos de lista con uno dos y tres.

63
00:04:26,280 --> 00:04:30,480
Veremos que recuperamos una serie de argumentos pasados ​​a esa función.

64
00:04:30,570 --> 00:04:35,210
Ahora en nuestro ejemplo, podemos usar la matriz de argumentos en lugar de listar.

65
00:04:35,250 --> 00:04:37,220
Hacer modelo y año.

66
00:04:37,340 --> 00:04:38,870
Pone un refactor bastante lindo.

67
00:04:39,090 --> 00:04:45,300
Hemos pasado de copiar y pegar tres líneas de la función de nuestro automóvil a tomar prestada la función del automóvil

68
00:04:45,300 --> 00:04:51,180
cambiando el contexto de la palabra clave esto y pasando cualquier argumento a esa función en el siguiente video.

69
00:04:51,210 --> 00:04:54,980
Vamos a resumir lo que aprendimos sobre las funciones de constructor y la nueva palabra clave.

70
00:04:55,060 --> 00:04:55,700
Ver cualquiera
