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
examp.forEach(json.jPush);
Une erreur sera signalée à ce moment :
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
examp .forEach(json.jPush,json);
alert(json.jArray);//Le résultat est normal, 123~456
Il existe une autre méthode :
exemple.forEach(function (c) {
json.jPush( c);
});
alert(json.jArray);//123~456
Vous peut également utiliser bind
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.