Rumah >hujung hadapan web >tutorial js >Mengapa Menggunakan Tatasusunan Kosong dengan `.forEach.call()` dalam JavaScript?
Coretan kod tidak konvensional ini, dengan tatasusunan kosong mendahului kaedah forEach, telah membingungkan pembangun . Mari kita mendalami cara ia berfungsi.
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 ialah fungsi yang mengambil fungsi lain sebagai input. Untuk setiap elemen dalam objek seperti tatasusunan (seperti senarai nod), ia menghantar tiga argumen:
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.
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.
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.
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!