1
00:00:00,480 --> 00:00:06,720
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.

2
00:00:06,720 --> 00:00:11,690
Nous allons apprendre à utiliser plusieurs fonctions constructeur sans duplication de code.

3
00:00:11,700 --> 00:00:13,790
Le matériel ici va être difficile.

4
00:00:13,860 --> 00:00:18,810
Alors assurez-vous que vous avez regardé la série vidéo sur le mot-clé ceci avant d'aller de l'avant.

5
00:00:18,810 --> 00:00:24,030
Maintenant, imaginons que nous avons deux fonctions constructeur, une pour une voiture et une pour une moto.

6
00:00:24,300 --> 00:00:31,660
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é.

7
00:00:31,890 --> 00:00:34,000
Mais ce qui n'est pas génial sur ce code.

8
00:00:34,190 --> 00:00:38,010
Regardez combien de code nous sommes en double dans la fonction moto.

9
00:00:38,400 --> 00:00:45,360
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.

10
00:00:45,780 --> 00:00:53,040
Ainsi vous pourriez penser pourquoi ne pas nous appelons juste la fonction de voiture à l'intérieur de la fonction de moto.

11
00:00:53,040 --> 00:01:01,620
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.

12
00:01:01,890 --> 00:01:03,770
Mais c'est la mauvaise chose.

13
00:01:03,780 --> 00:01:12,660
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.

14
00:01:12,780 --> 00:01:15,120
Alors, comment pouvons-nous changer la valeur du mot-clé.

15
00:01:15,120 --> 00:01:21,990
Ceci nous ramène à notre troisième règle de figurer dehors la valeur du mot-clé ceci avec la liaison explicite.

16
00:01:22,350 --> 00:01:32,450
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.

17
00:01:32,460 --> 00:01:38,220
Mieux encore, regardons les deux et voyons quel pourrait être un meilleur choix comme avertissement.

18
00:01:38,220 --> 00:01:41,260
Le code que je vais vous montrer peut être assez déroutant au début.

19
00:01:41,550 --> 00:01:49,120
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.

20
00:01:49,140 --> 00:01:57,000
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.

21
00:01:57,120 --> 00:02:03,870
Nous invoquons la fonction de voiture mais changeons le contexte du mot-clé ceci pour être le mot-clé ceci.

22
00:02:03,930 --> 00:02:05,090
Qu'est-ce que ça veut dire.

23
00:02:05,490 --> 00:02:11,420
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é.

24
00:02:11,450 --> 00:02:14,070
C'est la bonne valeur du mot-clé.

25
00:02:14,070 --> 00:02:19,330
Cela devrait être n'importe quel objet est créé à partir de la fonction moto.

26
00:02:19,380 --> 00:02:28,560
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.

27
00:02:28,620 --> 00:02:29,710
C'est assez déroutant.

28
00:02:29,760 --> 00:02:31,540
Essayons donc de le comprendre à nouveau.

29
00:02:31,890 --> 00:02:34,940
Nous voulons supprimer les doublons de notre fonction moto.

30
00:02:35,220 --> 00:02:42,420
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.

31
00:02:42,420 --> 00:02:50,170
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.

32
00:02:50,310 --> 00:02:56,010
Donc nous devons changer la valeur du mot-clé ceci pour faire que nous utilisons l'appelant s'appliquent.

33
00:02:56,310 --> 00:03:04,470
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.

34
00:03:04,470 --> 00:03:10,020
Le mot-clé this to be est l'objet qui sera créé à partir de la fonction moto.

35
00:03:10,020 --> 00:03:16,730
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.

36
00:03:17,160 --> 00:03:25,980
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.

37
00:03:26,040 --> 00:03:30,740
Lorsque le nouveau mot-clé est utilisé si vous êtes toujours trébuché sur ce pas de soucis.

38
00:03:30,870 --> 00:03:33,630
Nous faisons un javascript assez avancé ici.

39
00:03:33,630 --> 00:03:36,300
Pause la vidéo et essayez ces exemples de code.

40
00:03:36,300 --> 00:03:41,150
Et comme toujours nous poser des questions afin que nous puissions utiliser appel ou appliquer.

41
00:03:41,400 --> 00:04:00,440
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é.

42
00:04:00,540 --> 00:04:09,610
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.

43
00:04:09,780 --> 00:04:15,970
Mais pour nos fins, vous pouvez penser à elle comme un pour l'instant voici un exemple rapide en utilisant le tableau arguments.

44
00:04:16,170 --> 00:04:22,170
Je vais faire une fonction appelée liste arguments qui renverra les arguments passés à la fonction.

45
00:04:22,170 --> 00:04:26,120
Maintenant appelons les arguments de liste avec un deux et trois.

46
00:04:26,280 --> 00:04:30,480
Nous verrons que nous récupérons un tableau des arguments passés à cette fonction.

47
00:04:30,570 --> 00:04:35,210
Maintenant, dans notre exemple, nous pouvons utiliser le tableau arguments plutôt que de l'énumérer.

48
00:04:35,250 --> 00:04:37,220
Faire le modèle et l'année.

49
00:04:37,340 --> 00:04:38,870
Met un joli refactor.

50
00:04:39,090 --> 00:04:51,180
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.

51
00:04:51,210 --> 00:04:54,980
Nous allons récapituler ce que nous avons appris sur les fonctions constructeur et le nouveau mot-clé.
