Cet extrait de code non conventionnel, où un tableau vide précède la méthode forEach, a intrigué les développeurs . Voyons comment cela fonctionne.
Le tableau vide a un objectif particulier : il permet d'accéder à des prototypes de tableau comme .forEach. L'utilisation d'un tableau vous donne directement cette fonctionnalité sans avoir besoin d'écrire explicitement Array.prototype.forEach.call(...);.
forEach est une fonction qui prend une autre fonction en entrée. Pour chaque élément d'un objet de type tableau (comme une liste de nœuds), il transmet trois arguments :
La méthode .call vous permet d'invoquer une fonction avec un ce contexte spécifique. Dans ce cas, il remplace le this de la fonction interne par la liste de nœuds, garantissant que la fonction peut accéder aux éléments par index.
Considérez ceci :
[1,2,3].forEach.call( document.querySelectorAll('a'), function(el) { /* logic */ });
Ce code utilise le tableau vide pour accéder au prototype .forEach, transmet la liste de nœuds à forEach et parcourt chaque balise, donnant accès à l'élément, à son index et à la liste complète des nœuds.
Bien que certains soutiennent que l'utilisation de cette technique est inélégante par rapport au bouclage manuel, elle sert un objectif lorsque vous devez modifier le monde extérieur (par exemple, DOM) plusieurs fois tout en accédant aux informations d'un élément ou d'un index.
Dans les versions JavaScript modernes et avec des outils comme Babel, vous pouvez utiliser les opérateurs ... rest et spread pour obtenir des fonctionnalités similaires plus proprement. Cependant, les principes fondamentaux consistant à utiliser un tableau vide pour accéder au prototype de tableau et à modifier ce contexte avec .call restent pertinents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!