Rumah > hujung hadapan web > tutorial js > `call()` lwn. `apply()`: Bila Menggunakan Kaedah Invocation Fungsi Yang Mana?

`call()` lwn. `apply()`: Bila Menggunakan Kaedah Invocation Fungsi Yang Mana?

Mary-Kate Olsen
Lepaskan: 2024-12-14 07:16:14
asal
1016 orang telah melayarinya

`call()` vs. `apply()`: When to Use Which Function Invocation Method?

Invokasi Fungsi dengan panggilan dan gunakan

Apabila menggunakan fungsi, pengaturcara sering menghadapi pilihan untuk menggunakan Function.prototype.apply() atau Function .prototype.call(). Artikel ini meneroka perbezaan dan kes penggunaan untuk kedua-dua kaedah.

apply() vs. call()

Perbezaan asas terletak pada cara mereka mengendalikan hujah fungsi:

  • apply(): Menerima hujah sebagai tatasusunan.
  • panggilan(): Memerlukan hujah untuk disenaraikan secara eksplisit, dipisahkan oleh koma.

Sintaksis

Method Syntax
apply() function.apply(thisArg, [arg1, arg2, ...])
call() function.call(thisArg, arg1, arg2, ...)

Mnemonik

Untuk mengingati perbezaannya:

  • A untuk tatasusunan: apply() mengambil tatasusunan hujah.
  • C untuk koma: call() memerlukan hujah yang dipisahkan dengan koma.

Kes Penggunaan

  • panggilan(): Berguna apabila melepasi nombor tertentu argumen.
  • apply(): Sesuai untuk senario di mana argumen sudah disimpan dalam tatasusunan atau memerlukan pengikatan dinamik.

Pertimbangan Prestasi

Kedua-dua kaedah mempunyai ciri prestasi yang serupa. Dalam ES6 dan kemudian, operator spread (...) boleh digunakan dengan call(), menyediakan alternatif yang lebih ringkas untuk digunakan().

Contoh

Pertimbangkan fungsi berikut:

function greet(name, occupation) {
  console.log(`Hello, my name is ${name} and I'm a ${occupation}.`);
}
Salin selepas log masuk

Menyebut fungsi menggunakan apply() dan call():

greet.apply(undefined, ["John", "engineer"]);
greet.call(undefined, "Mary", "doctor");
Salin selepas log masuk

Ini akan mengeluarkan:

Hello, my name is John and I'm a engineer.
Hello, my name is Mary and I'm a doctor.
Salin selepas log masuk

Atas ialah kandungan terperinci `call()` lwn. `apply()`: Bila Menggunakan Kaedah Invocation Fungsi 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