Kaedah Invokasi Fungsi: panggil vs. gunakan
Dalam JavaScript, kaedah panggilan dan guna membolehkan anda menggunakan fungsi dengan konteks dan hujah tersuai . Walaupun kedua-dua kaedah mempunyai tujuan yang sama, ia berbeza dalam cara mereka mengendalikan hantaran hujah.
panggilan vs. guna: Pengendalian Argumen
Perbezaan utama terletak pada cara hujah dibekalkan kepada fungsi:
Untuk mengingati perbezaan ini, mnemonik "A untuk tatasusunan dan C untuk koma" boleh berguna.
Sintaks:
panggilan:
theFunction.call(valueForThis, arg1, arg2, ...)
mohon:
theFunction.apply(valueForThis, arrayOfArgs)
Contoh:
function theFunction(name, profession) { console.log("My name is " + name + " and I am a " + profession + "."); } theFunction("John", "fireman"); theFunction.apply(undefined, ["Susan", "school teacher"]); theFunction.call(undefined, "Claude", "mathematician");
Dalam contoh ini, kaedah panggilan digunakan dengan argumen yang dipisahkan koma, manakala kaedah apply mengambil tatasusunan argumen.
Spread Operator:
Dalam ES6 dan lebih baru, operator spread boleh digunakan untuk menghantar tatasusunan sebagai argumen kepada Kaedah panggilan:
theFunction.call(undefined, ...["Matthew", "physicist"]);
Prestasi dan Pengesyoran Penggunaan:
Tiada perbezaan prestasi yang ketara antara panggilan dan permohonan. Pilihan kaedah untuk digunakan bergantung pada situasi tertentu:
Atas ialah kandungan terperinci Panggilan lwn. Mohon dalam JavaScript: Bagaimanakah Kaedah Invokasi Fungsi Ini Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!