Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Meluluskan Argumen Pembolehubah daripada Tatasusunan kepada Fungsi JavaScript?

Bagaimana untuk Meluluskan Argumen Pembolehubah daripada Tatasusunan kepada Fungsi JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-13 14:05:02909semak imbas

How to Pass Variable Arguments from Arrays to JavaScript Functions?

Melalukan Argumen Pembolehubah kepada Fungsi JavaScript daripada Tatasusunan

Dalam JavaScript, adalah mungkin untuk menghantar nombor pembolehubah argumen kepada fungsi, termasuk daripada tatasusunan.

Menggunakan Sintaks Spread (ES6)

Sejak ES6, operator spread (...) boleh digunakan untuk menghantar elemen tatasusunan sebagai argumen individu kepada fungsi:

func(...arr);

Menggunakan Parameter selebihnya (ES6)

Jika anda menjangkakan untuk merawat hujah sebagai tatasusunan, anda boleh menggunakan selebihnya parameter:

function func(...args) {
  args.forEach(arg => console.log(arg))
}

func(...values)

Menggunakan apply

Kaedah lain untuk menghantar tatasusunan sebagai argumen ialah menggunakan kaedah apply():

func.apply('test', arr);

Perhatikan bahawa dalam mod tidak ketat, menggunakan null sebagai argumen pertama akan menyebabkan 'ini' dalam fungsi merujuk kepada tetingkap objek.

Menukar Objek Argumen kepada Tatasusunan

Objek argumen bukan tatasusunan, tetapi ia boleh ditukar menggunakan:

const argsArray = [...arguments];

Nota Tambahan

  • Anda juga boleh lulus bilangan argumen arbitrari terus ke fungsi.
  • Anda boleh menentukan bilangan argumen yang dijangkakan untuk fungsi menggunakan test.length.

Ringkasnya, menggunakan sintaks hamparan adalah keutamaan kaedah untuk menghantar argumen pembolehubah daripada tatasusunan kepada fungsi JavaScript, kerana sintaksnya yang ringkas dan kemudahan penggunaannya.

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Argumen Pembolehubah daripada Tatasusunan kepada Fungsi JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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