Salinan kode adalah sebagai berikut:
var json = {
Jarray: [],
jpush: function (c) {
this.jarray.push (c);
}
}
var test = ["123", "~", "456"];
Gunakan foreach yang diberikan oleh ES5 untuk mengulang contoh, dan menambahkannya ke Jarray di JSON;
Salinan kode adalah sebagai berikut:
test.foreach (json.jpush);
Kesalahan akan dilaporkan saat ini:
Alasan kesalahan ini adalah bahwa ini dalam metode JSON.JPUSH tidak menunjuk ke objek JSON, tetapi ke jendela. Solusi untuk masalah ini adalah menemukan orang yang tepat untuk ini.
Untungnya, foreach () memberikan parameter khusus untuk menentukan objek. Lihat kodenya.
Salinan kode adalah sebagai berikut:
test.foreach (json.jpush, json);
alert (json.jarray); // hasilnya normal, 123 ~ 456
Ada metode lain:
Salinan kode adalah sebagai berikut:
test.foreach (function (c) {
json.jpush (c);
});
alert (json.jarray); // 123 ~ 456
Anda juga dapat menggunakan ikatan untuk mengikat
Salinan kode adalah sebagai berikut:
test.foreach (json.jpush.bind (json));
alert (json.jarray);
Bind membuat fungsi baru alih -alih memodifikasi fungsi. Perilaku fungsi baru sama dengan fungsi asli, tetapi penerima adalah objek yang kami berikan, sedangkan penerima fungsi asli tetap tidak berubah.
Ini berarti bahwa penggunaan metode BIND sangat aman, karena ketika fungsi atau metode dibagikan, tidak perlu khawatir bahwa metode yang dibagikan tidak akan dimodifikasi.