Rumah > hujung hadapan web > tutorial js > Perbezaan antara Function.prototype.apply dan Function.prototype.call dalam JavaScript

Perbezaan antara Function.prototype.apply dan Function.prototype.call dalam JavaScript

WBOY
Lepaskan: 2023-08-24 13:05:02
ke hadapan
1518 orang telah melayarinya

JavaScript 中 Function.prototype.apply 和 Function.prototype.call 的区别

Function.prototype.apply ​​​​dan Function.prototype.call ialah kaedah yang membolehkan anda memanggil fungsi dengan nilai dan parameter tertentu ini. Perbezaan utama antara kedua-duanya ialah yang terpakai membolehkan anda menghantar dalam tatasusunan parameter, manakala panggilan memerlukan anda menyenaraikan parameter satu demi satu.

Function.prototype.apply

​​>

Function .prototype.apply ialah kaedah yang membolehkan anda memanggil fungsi dengan tatasusunan nilai dan hujah tertentu ini.

Syntax

Sintaks untuk menggunakan apply ialah -

func.apply(thisArg, argsArray)
Salin selepas log masuk

Di sini thisArg ialah nilai yang akan digunakan seperti ini di dalam fungsi. argsArray ialah susunan hujah yang akan dihantar ke fungsi.

Contoh

Berikut ialah contoh memanggil fungsi menggunakan apply -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.apply(null, ["John"])
   </script>
</body>
</html>
Salin selepas log masuk

Output

Kod di atas akan mencetak output di bawah.

Hello, John!
Salin selepas log masuk
Salin selepas log masuk

Seperti yang anda boleh lihat, kami melepasi null untuk Arg ini kerana kami tidak mahu menetapkan nilai ini. Kami lulus tatasusunan untuk argsArray yang mengandungi parameter "John". Hasilnya ialah panggilan ke fungsi sayHello dengan "John" sebagai hujah nama.

Function.prototype.call

Function.prototype.call ialah fungsi yang membolehkan anda memanggil kaedah dengan senarai nilai dan parameter tertentu ini.

Syntax

Sintaks untuk menggunakan panggilan ialah

func.call(thisArg, arg1, arg2, ...)
Salin selepas log masuk

di mana Arg ini ialah nilai yang akan digunakan seperti ini di dalam fungsi. arg1, arg2, ... adalah hujah yang akan dihantar ke fungsi.

Contoh

Berikut adalah contoh menggunakan panggilan Fungsi panggilan -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.call(null, ["John"])
   </script>
</body>
</html>
Salin selepas log masuk

Output

Kod di atas akan mencetak output di bawah.

Hello, John!
Salin selepas log masuk
Salin selepas log masuk

Seperti yang anda boleh lihat, kami melepasi null untuk Arg ini kerana kami tidak mahu menetapkan nilai ini. Kami mengambil "John" sebagai satu-satunya parameter. Hasilnya ialah panggilan ke fungsi sayHello dengan "John" sebagai parameter nama.

Perbezaan antara Function.prototype.apply dan Function.prototype.call

Jadual di bawah menyerlahkan perbezaan utama antara Function.prototype.apply dan Function.prototype.call -

applyFunction.prototype.callDefinisi Kaedah ini membolehkan kita memanggil fungsi dengan nilai ParameterKami lulus pelbagai parameter. Kami lulus senarai parameter. Kelajuan Oleh kerana ia tidak mencipta fungsi baharu, ia lebih pantas daripada em> Kerana setiap panggilan mencipta fungsi baharu, ia lebih perlahan daripada
Asas Fungsi Perbandingan
Kaedah ini membolehkan kita memanggil fungsi dengan nilai ini tertentu dan pelbagai parameter.

ini dan senarai hujah tertentu.

memanggil.

memohon. Penggunaan objek.

Panggil fungsi tanpa nama.

Panggil fungsi dan nyatakan konteks "ini"
  • Panggil fungsi tanpa menyatakan hujah pertama.

Kesimpulan
Dalam tutorial ini, kami membincangkan perbezaan antara kaedah
    apply
  • ​​dan

    panggilan

    >. Perbezaan utama antara keduanya ialah bagaimana mereka menerima hujah. Kaedah ini mempunyai kegunaan yang berbeza. Anda boleh melihat baris penggunaan dalam jadual di atas.

Atas ialah kandungan terperinci Perbezaan antara Function.prototype.apply dan Function.prototype.call dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan