Comment les fonctions d'ordre supérieur telles que .map() fonctionnent-elles dans JavaScript ?
P粉107772015
2023-08-25 17:41:30
<p>De nos jours, tout le monde essaie d'utiliser ces fonctions d'ordre supérieur pour obtenir des résultats prometteurs en écrivant moins de code. Mais je veux savoir comment ces fonctions fonctionnent en interne. </p>
<p>Supposons que j'écrive quelque chose de similaire</p>
<p>
<pre class="brush:js;toolbar:false;">var number = [16, 25, 36];
var résultats = nombres.map(Math.sqrt);
console.log(résultats); // [4, 5, 6]</pre>
</p>
<p>Je sais que chaque élément du tableau "number" est itéré un par un, mais <em>comment</em> ? </p>
<p>J'ai essayé de le rechercher, mais je n'ai pas encore obtenu de réponse satisfaisante. </p>
Je pense que chaque fournisseur devrait suivre les Spécifications
Une implémentation réelle (par exemple V8) peut être un peu complexe, voir cette réponse pour commencer. Vous pouvez également vous référer au code source de la v8 dans github, mais il n'est peut-être pas facile d'en comprendre une partie de manière isolée.
Citant la réponse ci-dessus :
Spécification ES2015 :
"length"
))..map
Juste une méthode qui accepte un rappel, appelle le rappel pour chaque élément du tableau et attribue la valeur au nouveau tableau. Cela n'a rien de spécial. Vous pouvez même facilement le faire vous-même :