Mengapakah terdapat tatasusunan kosong dalam fungsi [].forEach.call() JavaScript?

DDD
Lepaskan: 2024-10-24 22:27:30
asal
357 orang telah melayarinya

Why is there an empty array in JavaScript's [].forEach.call() function?

Memahami Fungsi [].forEach.call() dalam JavaScript

Adakah anda ingin tahu tentang penggunaan [].forEach yang menarik. call() dalam JavaScript? Mari kita mendalami tujuan dan fungsinya.

Dalam JavaScript, tatasusunan mempunyai kaedah berkuasa yang dipanggil forEach, yang membolehkan anda melakukan operasi pada setiap elemen tatasusunan. Walau bagaimanapun, dalam beberapa keadaan, anda mungkin menghadapi kod yang mana tatasusunan kosong digunakan sebelum memohon untukSetiap pada senarai nod.

Memecahkan Kod

Pertimbangkan perkara berikut coretan kod:

[].forEach.call(document.querySelectorAll('a'), function(el) {
  // Perform some operation on the current node
});
Salin selepas log masuk

Apa yang berlaku di sini? Mari kita pecahkan:

  • []: Ini ialah tatasusunan kosong. Ia tidak mempunyai tujuan sebenar dalam kod. Kehadirannya adalah semata-mata untuk menyediakan akses kepada kaedah forEach, yang merupakan prototaip tatasusunan.
  • forEach: Kaedah forEach berulang pada setiap elemen dalam tatasusunan (atau objek seperti tatasusunan) dan memanggil fungsi yang ditentukan dengan tiga argumen: elemen, indeksnya dan tatasusunan itu sendiri.
  • .call: Kaedah .call digunakan untuk memanggil fungsi dengan nilai yang ditentukan untuk kata kunci "ini". Dalam kes ini, ia menukar nilai "ini" bagi kaedah forEach daripada tatasusunan kosong kepada senarai tag . Ini membenarkan fungsi mengakses setiap elemen mengikut indeks.

Contoh Penggunaan

Mari kita lihat contoh untuk lebih memahami cara kod ini berfungsi:

const myNodeList = document.querySelectorAll('a');
[].forEach.call(myNodeList, function(el) {
  el.style.color = 'blue';
});
Salin selepas log masuk

Dalam kod ini:

Sintaks Alternatif untuk ES6

Dalam ES6 (ECMAScript 2015) dan seterusnya, yang lebih moden dan ringkas sintaks wujud untuk mencapai hasil yang sama:

[...document.querySelectorAll('a')].forEach(el => {
  el.style.color = 'blue';
});
Salin selepas log masuk

Dalam sintaks yang dikemas kini ini, kami menggunakan operator hamparan (...) untuk menukar senarai nod kepada tatasusunan, yang kemudiannya boleh diulang menggunakan forEach.

Kesimpulan

Teknik [].forEach.call() menyediakan cara yang ringkas dan berkesan untuk menggunakan kaedah forEach pada objek seperti tatasusunan seperti senarai nod. Dengan menggunakan teknik ini, anda boleh melakukan operasi dengan mudah pada setiap elemen dalam senarai. Walau bagaimanapun, ingat bahawa dalam JavaScript moden, sintaks alternatif seperti operator spread mungkin menawarkan penyelesaian yang lebih elegan.

Atas ialah kandungan terperinci Mengapakah terdapat tatasusunan kosong dalam fungsi [].forEach.call() JavaScript?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!