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.
Andaikan saya menulis sesuatu yang serupa
var numbers = [16, 25, 36]; var keputusan = numbers.map(Math.sqrt); console.log(hasil); // [4, 5, 6]
Saya tahu bahawa setiap elemen tatasusunan "nombor" diulang satu demi satu, tetapi bagaimana?
Saya cuba mencarinya tetapi masih belum mendapat jawapan yang memuaskan.
Saya rasa setiap pembekal harus mengikutSpesifikasi
Pelaksanaan sebenar (cth. V8) boleh menjadi agak rumit, lihatjawapan inisebagai 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: