Maison >interface Web >js tutoriel >Comment utiliser bind pour spécifier le destinataire dans les astuces javascript_javascript

Comment utiliser bind pour spécifier le destinataire dans les astuces javascript_javascript

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBoriginal
2016-05-16 16:50:141150parcourir
Copier le code Le code est le suivant :

var json = {
jArray : [],
jPush : function (c) {
this.jArray.push(c);
}
}
var example = ["123", "~", "456"];

Utilisez l'exemple de boucle forEach donné par ES5 et ajoutez-les au jArray dans json
Copier le code Le code est le suivant :

examp.forEach(json.jPush);

Une erreur sera signalée à ce moment :
Comment utiliser bind pour spécifier le destinataire dans les astuces javascript_javascript

est généré La raison de cette erreur est que ceci dans la méthode json.jPush ne pointe pas vers l'objet json, mais vers la fenêtre. La façon de résoudre ce problème est de trouver la bonne personne pour cela. .
Heureusement, forEach() fournit un paramètre , spécifiquement utilisé pour spécifier des objets
Copier le code Le. le code est le suivant :

examp .forEach(json.jPush,json);
alert(json.jArray);//Le résultat est normal, 123~456

Il existe une autre méthode :
Copier le code Le code est le suivant :

exemple.forEach(function (c) {
json.jPush( c);
});
alert(json.jArray);//123~456

Vous peut également utiliser bind
Copier le code Le code est le suivant :

examp.forEach(json .jPush.bind(json));
alert(json.jArray) ;

bind crée une nouvelle fonction plutôt que de modifier une fonction. de la fonction d'origine, mais son récepteur est l'objet que nous avons donné, et la fonction d'origine Le récepteur reste inchangé
Cela signifie que l'utilisation de la méthode bind est très sûre, car lorsqu'une fonction ou une méthode est partagée, il y a. pas besoin de craindre que la méthode partagée ne soit pas modifiée.
Déclaration:
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