Mengapa Menggunakan Tatasusunan Kosong dengan `.forEach.call()` dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-10-25 00:42:30
asal
604 orang telah melayarinya

Why Use an Empty Array with `.forEach.call()` in JavaScript?

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

Coretan kod tidak konvensional ini, dengan tatasusunan kosong mendahului kaedah forEach, telah membingungkan pembangun . Mari kita mendalami cara ia berfungsi.

Empty Array - Trik untuk Mengakses Prototaip Array

Array kosong mempunyai tujuan yang tersendiri: ia menyediakan akses kepada prototaip tatasusunan seperti .forEach. Menggunakan tatasusunan secara langsung memberi anda fungsi ini tanpa perlu menulis Array.prototype.forEach.call(...);.

forEach - Iteration with Customization

forEach ialah fungsi yang mengambil fungsi lain sebagai input. Untuk setiap elemen dalam objek seperti tatasusunan (seperti senarai nod), ia menghantar tiga argumen:

  • Elemen itu sendiri
  • Indeks elemen
  • Rujukan kepada objek seperti tatasusunan

.call - Mengubah suai Konteks ini

Kaedah .call membolehkan anda menggunakan fungsi dengan konteks tertentu ini. Dalam kes ini, ia mengatasi fungsi dalaman ini dengan senarai nod, memastikan fungsi itu boleh mengakses elemen mengikut indeks.

Contoh

Pertimbangkan ini:

[1,2,3].forEach.call( document.querySelectorAll('a'), function(el) { /* logic */ });
Salin selepas log masuk

Kod ini menggunakan tatasusunan kosong untuk mengakses prototaip .forEach, menghantar senarai nod ke forEach dan melelaran setiap teg, menyediakan akses kepada elemen, indeksnya dan senarai keseluruhan nod.

Menyahi Kebimbangan Pengaturcaraan Fungsional

Walaupun sesetengah pihak berpendapat bahawa menggunakan teknik ini adalah tidak elegan berbanding dengan gelung manual, ia berfungsi tujuan apabila anda perlu mengubah suai dunia luar (cth., DOM) beberapa kali semasa mengakses maklumat elemen atau indeks.

Penyelesaian Moden dalam ES6 dan Selain itu

Dalam versi JavaScript moden dan dengan alatan seperti Babel, anda boleh menggunakan operator ... rest and spread untuk mencapai fungsi yang serupa dengan lebih bersih. Walau bagaimanapun, prinsip teras menggunakan tatasusunan kosong untuk akses prototaip tatasusunan dan mengubah suai konteks ini dengan .call kekal relevan.

Atas ialah kandungan terperinci Mengapa Menggunakan Tatasusunan Kosong dengan `.forEach.call()` dalam 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
Artikel terbaru oleh pengarang
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!