Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Menggunakan Tatasusunan Kosong dengan `.forEach.call()` dalam JavaScript?

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

Barbara Streisand
Barbara Streisandasal
2024-10-25 00:42:30605semak imbas

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 */ });

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!

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