Rumah > hujung hadapan web > tutorial js > JavaScript `apply()` lwn. `call()`: Bilakah Saya Perlu Menggunakan Yang Mana?

JavaScript `apply()` lwn. `call()`: Bilakah Saya Perlu Menggunakan Yang Mana?

Linda Hamilton
Lepaskan: 2024-12-22 19:07:14
asal
889 orang telah melayarinya

JavaScript `apply()` vs. `call()`: When Should I Use Which?

Kaedah Invokasi dalam JavaScript: Meneroka apply() vs. call()

Apabila menggunakan fungsi dalam JavaScript, anda mempunyai dua kaedah utama di pelupusan anda: apply() dan call(). Kedua-duanya membenarkan anda melaksanakan fungsi dengan nilai ini yang ditentukan, tetapi ia berbeza dalam cara argumen dihantar.

apply(thisValue, argumentsArray)

  • Constructs tatasusunan daripada argumentsArray yang disediakan.
  • Memanggil fungsi dengan thisValue dan elemen tatasusunan sebagai hujah individu.
  • Contoh:
const func = function() {
    console.log("Hello world!");
};
func.apply(null, ["John", 35]); // Invokes "Hello world!" and logs "John" and 35.
Salin selepas log masuk

call(thisValue, arg1, arg2, ...argN)

  • Melayan hujah sebagai individu parameter.
  • Memanggil fungsi dengan thisValue yang ditentukan dan argumen yang disediakan sebagai nilai berasingan.
  • Contoh:
func.call(null, "John", 35); // Invokes "Hello world!" and logs "John" and 35.
Salin selepas log masuk

Mnemonik:

  • Mohon: A
  • untuk susunan argumen.
  • Panggil: C
  • untuk argumen yang dipisahkan koma.

Perbezaan Prestasi:

  • Secara amnya terdapat perbezaan prestasi yang boleh diabaikan antara apply() dan call().
  • Walau bagaimanapun, apply() mungkin lebih pantas sedikit apabila berurusan dengan sejumlah besar hujah.

Kes Penggunaan Terbaik:

  • Gunakan apply():
  • Apabila anda mempunyai pelbagai hujah yang anda mahu hantar ke fungsi, terutamanya apabila bilangan argumen tidak diketahui terlebih dahulu.
  • Gunakan panggilan():
  • Apabila anda ingin menghantar argumen individu kepada fungsi dan mempunyai lebih kawalan ke atas susunannya .

Tambahan ES6:

  • Dalam ES6, anda boleh menggunakan operator spread dengan call() untuk menyebarkan tatasusunan ke dalam argumen individu.
  • Contoh:
func.call(null, ...["John", 35]); // Same as func.apply(null, ["John", 35]).
Salin selepas log masuk

Atas ialah kandungan terperinci JavaScript `apply()` lwn. `call()`: Bilakah Saya Perlu Menggunakan Yang Mana?. 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