Pengenalan kepada call() di tapak web rasmi Mozilla ialah:
Parameter Panggilan()
Arg ini
Kaedah panggilan() dalam Javascript
Jangan beri perhatian kepada penjelasan rumit di atas dan mulakan proses langkah demi langkah.
Kaedah Contoh Panggilan()
Jadi saya menulis Hello, World yang lain:
Seterusnya, mari lihat contoh lain.
print.call(obj, "Hello", "World");
Hanya di sini, perkara yang kami hantar masih tidak ditentukan, kerana yang tidak ditentukan dalam contoh sebelumnya adalah kerana parameter perlu dihantar masuk. Ini tidak benar-benar menggambarkan penggunaan panggilan. Mari kita lihat contoh yang lebih baik.
var h={p1:"hello", p2:"world", print:print};
h.print("fd");
var h2={p1:"hello", p2:"world"};
print.call(h2, "nothing");
Panggilan bermaksud meminjam kaedah dan objek orang lain untuk dihubungi, sama seperti memanggil anda sendiri. Dalam h.print, apabila fungsi dipanggil sebagai kaedah, ini akan menunjuk ke objek yang berkaitan. Cuma dalam contoh ini kita tidak faham sama ada h2 dipanggil print atau print dipanggil h2. Jadi saya memetik contoh Mozilla
jika (harga < 0)
throw RangeError('Tidak boleh membuat produk "' name '" dengan harga negatif');
Kembalikan ini;
}
fungsi Makanan(nama, harga) {
Product.call(ini, nama, harga);
This.category = 'makanan';
}
Food.prototype = Produk baharu();
var keju = Makanan baharu('feta', 5);
console.log(keju);
var h2= fungsi(tidak){
This.p1 = "hello";
This.p2 = "dunia";
Print.call(ini, "tiada apa-apa");
};
h2();
h2 di sini bertindak sebagai penerima untuk memanggil cetakan fungsi. Seperti dalam contoh Makanan, dalam pembina anak, anda boleh melaksanakan warisan dengan memanggil kaedah panggilan pembina induk.
Bagi kelebihan kaedah Panggilan, ia diperkenalkan dalam "JavaScript Berkesan".
1 Gunakan kaedah panggilan untuk menyesuaikan penerima untuk memanggil fungsi.
2. Gunakan kaedah panggilan untuk memanggil kaedah yang tidak wujud dalam objek yang diberikan.
3. Gunakan kaedah panggilan untuk mentakrifkan fungsi tertib lebih tinggi yang membolehkan pengguna menentukan penerima untuk fungsi panggil balik.