Wie funktionieren Funktionen höherer Ordnung wie .map() in JavaScript?
P粉107772015
2023-08-25 17:41:30
<p>Heutzutage versucht jeder, diese Funktionen höherer Ordnung zu nutzen, um vielversprechende Ergebnisse zu erzielen, indem weniger Code geschrieben wird. Aber ich möchte wissen, wie diese Funktionen intern funktionieren. </p>
<p>Angenommen, ich hätte etwas Ähnliches geschrieben</p>
<p>
<pre class="brush:js;toolbar:false;">var zahlen = [16, 25, 36];
var results = zahlen.map(Math.sqrt);
console.log(results); // [4, 5, 6]</pre>
</p>
<p>Ich weiß, dass jedes Element des Arrays „Zahl“ einzeln iteriert wird, aber <em>wie</em>? </p>
<p>Ich habe versucht, danach zu suchen, habe aber noch keine zufriedenstellende Antwort erhalten. </p>
我想每个供应商都应该按照 规格
实际实现(例如 V8)可能有点复杂,请参阅此答案作为开始。您也可以参考 github 中的 v8 源码,但孤立地理解其中的一部分可能并不容易。
引用上面的答案:
ES2015 规范:
"length"
))。.map
只是一个接受回调、为数组的每个项目调用回调并将值分配给新数组的方法。没什么特别的。您甚至可以自己轻松实现: