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
Lepaskan: 2024-12-15 11:05:17
asal
724 orang telah melayarinya

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, ...)
    Salin selepas log masuk
  • mohon:

    theFunction.apply(valueForThis, arrayOfArgs)
    Salin selepas log masuk

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");
Salin selepas log masuk

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"]);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan