Maison > interface Web > js tutoriel > La différence entre appeler, appliquer et lier en js

La différence entre appeler, appliquer et lier en js

angryTom
Libérer: 2020-02-12 16:02:26
original
4537 Les gens l'ont consulté

En JavaScript, les appels, les applications et les liaisons existent tous pour changer le contexte lorsqu'une fonction est en cours d'exécution. En d'autres termes, ils doivent changer le pointeur de this à l'intérieur du corps de la fonction.

La différence entre appeler, appliquer et lier en js

La différence entre appeler, appliquer et lier en js

La différence entre appeler, appliquer et lier peut être trouvée via le suivant Regardons des exemples.

var obj = {
    x: 81,
};
 
var foo = {
    getX: function() {
        return this.x;
    }
}
 
console.log(foo.getX.bind(obj)());  //81
console.log(foo.getX.call(obj));    //81
console.log(foo.getX.apply(obj));   //81
Copier après la connexion

Les trois sorties sont toutes 81, mais faites attention à celle qui utilise la méthode bind(). Il y a une paire de crochets après.

En d'autres termes, la différence est que lorsque vous souhaitez modifier l'environnement contextuel et non pas l'exécuter immédiatement, mais une exécution de rappel, utilisez la méthode bind(). Apply/call exécutera la fonction immédiatement.

Pour résumer :

apply, call et bind sont tous utilisés pour changer le pointage de l'objet this de la fonction

apply, call Le premier paramètre de ,bind est l'objet vers lequel cela pointe, c'est-à-dire le contexte que vous souhaitez spécifier

apply, call et bind peuvent tous utiliser les paramètres suivants pour transmettre des paramètres; 🎜> bind renvoie la fonction correspondante pour un appel facile plus tard ;

appliquer et appeler immédiatement.

Cet article provient de la rubrique

tutoriel js

, bienvenue pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal