Bienvenue dans la dernière vidéo, nous examinons la deuxième règle pour déterminer la valeur du mot clé que la règle implicite de la règle implicite affirme que lorsque le mot clé est à l'intérieur d'un objet déclaré sa valeur sera toujours l'objet parent le plus proche.
Une chose à noter ces règles que nous utilisons ne sont pas une partie officielle de la spécification JavaScript afin que vous ne les trouverez pas là.
Ces règles sont juste un moyen utile de garder une trace de ce que la valeur du mot clé que c'est.
À la fin de la dernière vidéo, nous avons vu un exemple de lorsque le contexte du mot clé a changé de façon inattendue dans notre méthode Say hello.
La propriété du premier nom est devenue non définie parce que le mot-clé this se référait maintenant à l'objet chien.
Alors, que voulons-nous explicitement définir la valeur du mot-clé ce afin que nous puissions le forcer à être l'objet personne au lieu de l'objet chien.
C'est là que la troisième règle intervient.
Chaque fois que vous voyez l'appel appliquer ou bind méthodes, vous pouvez facilement déterminer ce que la valeur du mot-clé ce sera parce que vous obtenez de le définir comme le premier paramètre à appeler appliquer et lier.
Avant de comparer et de comparer ces trois méthodes.
Une chose à retenir est qu'ils ne peuvent être utilisés que sur les fonctions call apply et bind ou sur des méthodes qui ne peuvent être utilisées que par des fonctions non par un autre type de données comme des booléens ou des objets.
La première méthode que nous allons parler est appeler le premier argument à la méthode d'appel est ce que vous voulez que la valeur du mot-clé que ce soit.
Ceci est communément appelé ce ARG et peut être réglé sur ce que vous voulez.
Les arguments après cette ARG sont tous les paramètres que vous voulez passer à la fonction que vous changez le contexte du mot-clé que l'intérieur des sons confondants, mais je vais faire plus de sens quand nous voyons un exemple.
Et comme une fonction peut avoir un nombre infini d'arguments, nous séparons chacun d'eux avec une virgule lors de l'utilisation de l'appel.
Enfin, lorsque la méthode d'appel est utilisée sur une fonction, cette fonction est immédiatement appelée.
Passons maintenant à un complot.
Appliquer est presque identique à appeler, sauf appliquer seulement prend deux paramètres au plus le premier juste comme l'appel est ce que nous voulons que la valeur du mot-clé que ce soit.
Nous appelons cela ARG.
Le second est un tableau d'arguments que nous voulons passer à la fonction dans laquelle nous changeons la valeur du mot-clé this.
Examinons maintenant bind.
Bind est presque identique à call sauf au lieu d'invoquer la fonction immédiatement.
Bind renvoie une définition de fonction.
Reprenons rapidement ce que je veux dire par la définition de la fonction.
Je vais faire une fonction appelée première fonction et il va retourner la chaîne Bonjour.
Si je n'appelle pas la fonction mais examine la variable i created.
Je suis retourné une définition de fonction.
Bind est une fonction extrêmement puissante car nous pouvons voir des fonctions avec une valeur différente du mot clé this et les invoquer à un moment ultérieur.
Bind est très utile lorsque vous travaillez avec un code asynchrone comme timeout et est le bloc de construction pour les techniques de programmation plus avancées comme couriering.
Récapitulons rapidement ces trois méthodes appel appliquer et bind sont utilisés pour explicitement dit la valeur du mot-clé.
Cela nous les utilisons quand nous voulons un contrôle total sur ce que le mot-clé ce référer à.
Ainsi, il aura la priorité sur les deux premières règles appeler et appliquer immédiatement invoquer la fonction sur laquelle ils sont appelés alors que bind ou retourner une nouvelle définition de fonction avec la valeur du mot-clé.
Ceci définit explicitement enfin appel et bind.
Sauf un nombre infini de paramètres alors que l'application ne prend que deux dans la vidéo suivante.
Nous allons voir un exemple d'appel et comment nous pouvons l'utiliser pour définir explicitement la valeur du mot clé this.