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
924 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!

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