Bagaimanakah fungsi tertib tinggi seperti .map() berfungsi dalam JavaScript?
P粉107772015
2023-08-25 17:41:30
<p>Pada masa kini semua orang cuba menggunakan fungsi tertib tinggi ini untuk mendapatkan hasil yang menjanjikan dengan menulis kod yang lebih sedikit. Tetapi saya ingin tahu bagaimana fungsi ini berfungsi secara dalaman. </p>
<p>Andaikan saya menulis sesuatu yang serupa</p>
<p>
<pre class="brush:js;toolbar:false;">var numbers = [16, 25, 36];
var keputusan = numbers.map(Math.sqrt);
console.log(hasil); // [4, 5, 6]</pre>
</p>
<p>Saya tahu bahawa setiap elemen tatasusunan "nombor" diulang satu demi satu, tetapi <em>bagaimana</em>? </p>
<p>Saya cuba mencarinya tetapi masih belum mendapat jawapan yang memuaskan. </p>
Saya rasa setiap pembekal harus mengikut Spesifikasi
Pelaksanaan sebenar (cth. V8) boleh menjadi agak rumit, lihat jawapan ini sebagai permulaan. Anda juga boleh merujuk kepada kod sumber v8 dalam github, tetapi mungkin tidak mudah untuk memahami sebahagian daripadanya secara berasingan.
Memetik jawapan di atas:
Spesifikasi ES2015:
"length"
))..map
Hanya kaedah yang menerima panggilan balik, memanggil panggilan balik untuk setiap item tatasusunan dan memberikan nilai kepada tatasusunan baharu. Ia tidak istimewa. Anda juga boleh melakukannya sendiri dengan mudah: