Rumah >hujung hadapan web >tutorial js >Panggilan lwn. Mohon dalam JavaScript: Bagaimanakah Kaedah Invokasi Fungsi Ini Berbeza?

Panggilan lwn. Mohon dalam JavaScript: Bagaimanakah Kaedah Invokasi Fungsi Ini Berbeza?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 11:05:17726semak imbas

Call vs. Apply in JavaScript: How Do These Function Invocation Methods Differ?

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:

  • panggilan: Setiap hujah diluluskan secara individu.
  • gunakan: Argumen dihantar sebagai tatasusunan.

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:

  • Jika argumen sudah ada dalam tatasusunan, menggunakan gunakan boleh memudahkan kod.
  • Jika anda perlu menghantar nilai tersuai untuk konteks ini, kedua-dua panggilan dan permohonan boleh digunakan.
  • Secara amnya dianggap sebagai amalan yang baik untuk menggunakan panggil apabila bekerja dengan fungsi sebagai objek dan terapkan apabila berurusan dengan tatasusunan argumen.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn