En el último video vimos cómo crear objetos a partir de funciones de constructor usando la nueva palabra clave en
este video.
Vamos a aprender a usar múltiples funciones de constructor sin duplicar el código.
El material aquí va a ser un desafío.
Así que asegúrese de haber visto la serie de videos sobre la palabra clave esto antes de seguir adelante.
Ahora imaginemos que tenemos dos funciones de constructor, una para un automóvil y otra para una motocicleta.
Aquí está el código para ambos y lo que vemos aquí no es nada especial, solo algunas funciones que
construyen objetos usando la nueva palabra clave.
Pero lo que no es bueno acerca de este código.
Mira cuánto código estamos duplicando en la función de motocicleta.
Sería realmente bueno si pudiéramos tomar prestado el código de la función de tarjeta y ponerlo en
la función de motocicleta.
Entonces, quizás piense por qué no llamamos a la función del automóvil dentro de la función de la motocicleta.
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
partir de la función del automóvil.
Pero eso es lo incorrecto.
Lo que tenemos que hacer aquí es cambiar el valor de la palabra clave esto para que sea el objeto creado
a partir de la función del ciclo motor.
Entonces, ¿cómo podemos cambiar el valor de la palabra clave?
Esto nos remonta a nuestra tercera regla de calcular el valor de la palabra clave esto con enlace explícito.
Esto significa que queremos usar call apply o bind podemos descartar usando bind porque no queremos devolver una definición
de función, así que vamos a elegir call o apply.
Mejor aún, veamos ambos y veamos cuál podría ser una mejor opción como advertencia.
El código que voy a mostrarle puede ser bastante confuso al principio.
Así que siéntase libre de pausar el video intente leerlo primero y póngalo en la consola de Chrome para ver exactamente
lo que está sucediendo.
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
lugar de duplicar el código de la función del automóvil.
Invocamos la función del automóvil pero cambiamos el contexto de la palabra clave, esta es la palabra clave this.
Qué significa eso.
Bueno, piense en nuestro problema antes, cuando no usamos la llamada perdimos el contexto correcto de la palabra
clave.
Este es el valor correcto de la palabra clave.
Esto debería ser cualquier objeto que se esté creando a partir de la función de la motocicleta.
Cuando se utiliza la palabra clave nueva, la forma en que accedemos a ese objeto es usando la palabra clave this dentro de
la función de la motocicleta.
Esto es bastante confuso
Así que intentémoslo de nuevo.
Queremos eliminar la duplicación de nuestra función de motocicleta.
haciendo es tomar prestado el código de la función del automóvil llamándolo dentro de la función del ciclo motor.
Entonces, lo que estamos
El problema aquí es que la palabra clave this inside of the car function no es la palabra clave
this que queremos usar.
Entonces tenemos que cambiar el valor de la palabra clave this to do que utilizamos la aplicación de llamador.
Y como primer parámetro para llamar o aplicar, especificamos lo que nos gustaría que el valor de la
palabra clave sea el valor que queremos.
La palabra clave this to be es el objeto que se creará a partir de la función de motocicleta.
La forma en que obtenemos acceso a ese objeto es usando la palabra clave this dentro de la función de motocicleta.
Es por eso que el primer argumento para llamar o aplicar es la palabra clave this que se refiere al objeto creado a partir
de la función de la motocicleta.
Cuando se usa la nueva palabra clave si todavía está en problemas, no se preocupe.
Estamos haciendo un javascript bastante avanzado aquí.
Haga una pausa en el video y pruebe estos ejemplos de código.
Y como siempre, háganos cualquier pregunta para que podamos usar la llamada o aplicar.
aplica es una matriz de argumentos que se pasan a la función para que podamos colocar
el modelo y el año en una matriz o podemos usar otra palabra clave especial. palabra clave.
Pero recuerde que la única diferencia es el segundo parámetro con apply. El segundo parámetro que se
Es posible que haya visto argumentos antes, pero si no es una lista de todos los argumentos que se
pasan a una función, técnicamente no es una matriz.
Pero, para nuestros propósitos, puede pensar que es uno por ahora. Aquí hay un ejemplo rápido usando la matriz de argumentos.
Voy a hacer una función llamada lista de argumentos que devolverá los argumentos pasados ​​a la función.
Ahora llamemos a los argumentos de lista con uno dos y tres.
Veremos que recuperamos una serie de argumentos pasados ​​a esa función.
Ahora en nuestro ejemplo, podemos usar la matriz de argumentos en lugar de listar.
Hacer modelo y año.
Pone un refactor bastante lindo.
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
cambiando el contexto de la palabra clave esto y pasando cualquier argumento a esa función en el siguiente video.
Vamos a resumir lo que aprendimos sobre las funciones de constructor y la nueva palabra clave.
Ver cualquiera