Die Codekopie lautet wie folgt:
var json = {
Jarray: [],
JPUSH: Funktion (c) {
this.jarray.push (c);
}
}
var test = ["123", "~", "456"];
Verwenden Sie die von ES5 gegebene Foreach, um das Beispiel zu schleifen, und fügen Sie sie zu Jarray in JSON hinzu.
Die Codekopie lautet wie folgt:
test.foreach (json.jpush);
Zu diesem Zeitpunkt wird ein Fehler gemeldet:
Der Grund für diesen Fehler ist, dass dies in der JSON.jpush -Methode nicht auf das JSON -Objekt, sondern auf das Fenster verweist. Die Lösung für dieses Problem besteht darin, die richtige Person dafür zu finden.
Glücklicherweise bietet foreach () einen Parameter speziell zum Angeben von Objekten. Siehe den Code.
Die Codekopie lautet wie folgt:
test.foreach (json.jpush, json);
Alert (json.jarray); // Das Ergebnis ist normal, 123 ~ 456
Es gibt eine andere Methode:
Die Codekopie lautet wie folgt:
test.foreach (Funktion (c) {
Json.jpush (c);
});
Alert (json.jarray); // 123 ~ 456
Sie können Bind auch verwenden, um zu binden
Die Codekopie lautet wie folgt:
test.foreach (json.jpush.bind (json));
Alert (json.jarray);
Bind erstellt eine neue Funktion, anstatt eine Funktion zu modifizieren. Das Verhalten der neuen Funktion ist das gleiche wie die ursprüngliche Funktion, aber sein Empfänger ist das von uns angegebene Objekt, während der Empfänger der ursprünglichen Funktion unverändert bleibt.
Dies bedeutet, dass die Verwendung der Bindungsmethode sehr sicher ist, da bei einer gemeinsamen Funktion oder Methode keine Sorge, dass die gemeinsam genutzte Methode nicht geändert wird.