var json = {
jArray: [],
jPush: function (c) {
this.jArray.push(c);
}
}
var examp = ["123", "~", "456"];
Verwenden Sie das von ES5 bereitgestellte forEach-Schleifenbeispiel und fügen Sie sie dem jArray in json hinzu.
examp.forEach(json.jPush);
Zu diesem Zeitpunkt wird ein Fehler gemeldet:
wird generiert. Der Grund für diesen Fehler ist, dass dies in der json.jPush-Methode nicht auf das JSON-Objekt verweist, sondern auf das Fenster. Der Weg, dieses Problem zu lösen, besteht darin, die richtige Person dafür zu finden . Glücklicherweise bietet forEach() einen Parameter, der speziell zum Angeben von Objekten verwendet wird.
examp .forEach(json.jPush,json);
alert(json.jArray);//Das Ergebnis ist normal, 123~456
Es gibt noch eine andere Methode:
examp.forEach(function (c) {
json.jPush( c);
});
alert(json.jArray);//123~456
Sie kann auch bind
examp.forEach(json .jPush.bind(json));
alert(json.jArray) ;
bind erstellt eine neue Funktion, anstatt eine Funktion zu ändern der ursprünglichen Funktion, aber ihr Empfänger ist das von uns angegebene Objekt, und die ursprüngliche Funktion Der Empfänger bleibt unverändert
Dies bedeutet, dass die Verwendung der Bindungsmethode sehr sicher ist, da dies der Fall ist, wenn eine Funktion oder Methode gemeinsam genutzt wird Sie müssen sich keine Sorgen machen, dass die gemeinsam genutzte Methode nicht geändert wird.