Rumah >hujung hadapan web >tutorial js >`call()` lwn. `apply()`: Bila Menggunakan Kaedah Invocation Fungsi Yang Mana?
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:
Sintaksis
Method | Syntax |
---|---|
apply() | function.apply(thisArg, [arg1, arg2, ...]) |
call() | function.call(thisArg, arg1, arg2, ...) |
Mnemonik
Untuk mengingati perbezaannya:
Kes Penggunaan
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}.`); }
Menyebut fungsi menggunakan apply() dan call():
greet.apply(undefined, ["John", "engineer"]); greet.call(undefined, "Mary", "doctor");
Ini akan mengeluarkan:
Hello, my name is John and I'm a engineer. Hello, my name is Mary and I'm a doctor.
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!