Dans la dernière vidéo, nous avons vu comment créer des objets à partir de fonctions constructeur en utilisant le nouveau mot-clé dans cette vidéo.
Nous allons apprendre à utiliser plusieurs fonctions constructeur sans duplication de code.
Le matériel ici va être difficile.
Alors assurez-vous que vous avez regardé la série vidéo sur le mot-clé ceci avant d'aller de l'avant.
Maintenant, imaginons que nous avons deux fonctions constructeur, une pour une voiture et une pour une moto.
Voici le code pour les deux et ce que nous voyons ici n'est rien de spécial seulement certaines fonctions qui construisent des objets en utilisant le nouveau mot-clé.
Mais ce qui n'est pas génial sur ce code.
Regardez combien de code nous sommes en double dans la fonction moto.
Il serait vraiment bien si nous pouvions en quelque sorte emprunter le code de la fonction de carte et le mettre dans la fonction moto.
Ainsi vous pourriez penser pourquoi ne pas nous appelons juste la fonction de voiture à l'intérieur de la fonction de moto.
Le problème ici est quand nous appelons la fonction de voiture le mot-clé cela fait référence à l'objet qui sera créé à partir de la fonction de voiture.
Mais c'est la mauvaise chose.
Ce que nous devons faire ici est de changer la valeur du mot-clé que ce soit l'objet créé à partir de la fonction moto cycle.
Alors, comment pouvons-nous changer la valeur du mot-clé.
Ceci nous ramène à notre troisième règle de figurer dehors la valeur du mot-clé ceci avec la liaison explicite.
Cela signifie que nous voulons utiliser call apply ou bind que nous pouvons rejeter en utilisant bind car nous ne voulons pas retourner une définition de fonction alors choisissons call ou apply.
Mieux encore, regardons les deux et voyons quel pourrait être un meilleur choix comme avertissement.
Le code que je vais vous montrer peut être assez déroutant au début.
Alors n'hésitez pas à mettre en pause la vidéo, essayez de la lire d'abord et mettez-la dans la console chromée pour voir exactement ce qui se passe.
Ainsi, la fonction voiture ressemble le même, mais le truc amusant se passe dans la fonction de moto au lieu de dupliquer le code de la fonction de voiture.
Nous invoquons la fonction de voiture mais changeons le contexte du mot-clé ceci pour être le mot-clé ceci.
Qu'est-ce que ça veut dire.
Eh bien réfléchir à notre problème avant quand nous n'avons pas utilisé appel nous avons perdu le contexte correct du mot clé.
C'est la bonne valeur du mot-clé.
Cela devrait être n'importe quel objet est créé à partir de la fonction moto.
Lorsque le nouveau mot-clé est utilisé, la façon dont nous accédons à cet objet est en utilisant le mot-clé à l'intérieur de la moto fonction.
C'est assez déroutant.
Essayons donc de le comprendre à nouveau.
Nous voulons supprimer les doublons de notre fonction moto.
Donc, ce que nous faisons est d'emprunter le code de la fonction de voiture en l'appelant à l'intérieur de la fonction moto.
Le problème ici est que le mot-clé que l'intérieur de la fonction de voiture n'est pas le mot-clé ce que nous voulons utiliser.
Donc nous devons changer la valeur du mot-clé ceci pour faire que nous utilisons l'appelant s'appliquent.
Et comme premier paramètre à appeler ou à appliquer, nous spécifions ce que nous aimerions que la valeur du mot-clé soit la valeur que nous voulons.
Le mot-clé this to be est l'objet qui sera créé à partir de la fonction moto.
La manière dont nous obtenons l'accès à cet objet est en utilisant le mot-clé ceci à l'intérieur de la fonction de moto.
C'est pourquoi le premier argument à appeler ou appliquer est le mot-clé ce qui fait référence à l'objet créé à partir de la fonction moto.
Lorsque le nouveau mot-clé est utilisé si vous êtes toujours trébuché sur ce pas de soucis.
Nous faisons un javascript assez avancé ici.
Pause la vidéo et essayez ces exemples de code.
Et comme toujours nous poser des questions afin que nous puissions utiliser appel ou appliquer.
Mais n'oubliez pas la seule différence est le deuxième paramètre avec appliquer le second paramètre à appliquer est un tableau d'arguments qui sont passés à la fonction afin que nous puissions soit place make modèle et année dans un tableau ou nous pouvons utiliser un autre mot clé spécial les arguments mot-clé.
Vous avez peut-être déjà vu des arguments avant mais si pas arguments est une liste de tous les arguments qui sont passés à une fonction, ce n'est pas techniquement un tableau.
Mais pour nos fins, vous pouvez penser à elle comme un pour l'instant voici un exemple rapide en utilisant le tableau arguments.
Je vais faire une fonction appelée liste arguments qui renverra les arguments passés à la fonction.
Maintenant appelons les arguments de liste avec un deux et trois.
Nous verrons que nous récupérons un tableau des arguments passés à cette fonction.
Maintenant, dans notre exemple, nous pouvons utiliser le tableau arguments plutôt que de l'énumérer.
Faire le modèle et l'année.
Met un joli refactor.
Nous sommes passés de copier et coller trois lignes de notre fonction de voiture à emprunter la fonction de voiture en changeant le contexte du mot-clé ceci et en passant dans tous les arguments à cette fonction dans la prochaine vidéo.
Nous allons récapituler ce que nous avons appris sur les fonctions constructeur et le nouveau mot-clé.