La différence entre `_.forEach` et` $ .each`
De ces deux fonctions, _.forEach
et $.each
prises respectivement de underscore
et jQuery
semble faire la même chose.
Quels sont les possibles raisons de préférer une mise en œuvre à l'autre?
source d'informationauteur Lorraine Bernard
Vous devez vous connecter pour publier un commentaire.
_.forEach
et$.each
diffère pour les arguments passés à la fonction de rappel.Si vous utilisez
_.forEach
le premier argument passé à la fonction de rappel est la valeur, non pas la clé.Donc, si vous ne vous souciez pas du tout sur la touche que vous devriez utiliser
_.forEach
.D'autres différences:
_.forEach
il sera un peu plus rapide car il utilise le natifArrray.prototype.forEach
dans les navigateurs modernes.jQuery ressemble:
Trait de soulignement ressemble:
Tableau natif.forEach ressemble:
Donc:
forEach
this
àElement
natif et le trait de Soulignement de vous permettre de vous fournir votre propre contexteEdit: Pourquoi est-il utile d'être en mesure de définir le contexte?
Considérez que vous avez un certain type de l'objet:
Dites que vous voulez appeler cette méthode sur toutes les valeurs d'un tableau.
En utilisant le paramètre de contexte, vous pouvez simplement dire:
alors que, sans elle, vous auriez besoin d'être plus verbeux (et faire un autre appel de fonction par élément):
C'est une situation où de JQuery foreaching convention rend les choses moins pratique.
Deux d'entre eux, principalement fournir un remplacement pour le forEach fonction n'est pas disponible dans IE8.
Qu'ils n'ajoutent pas beaucoup plus, si vous êtes parcourir des tableaux.
La principale différence, en dehors de l'ordre de rappel des arguments, c'est que dans jQuery, la valeur est également disponible dans le contexte de la fonction de rappel de l'appel (c'est pourquoi la valeur, moins important, est seulement le deuxième argument fourni). Ce n'est pas vraiment l'une des principales raisons de le préférer à moins que vous aimez vraiment pour éviter de passer un argument à la fonction :
Le plus souvent, vous n'utilisez pas les deux bibliothèques, alors il suffit d'utiliser l'itération de la fonction de la bibliothèque que vous avez.
S'il vous arrive d'importer des bibliothèques, je vous suggère d'utiliser le trait de soulignement de la fonction en tant que
Voir la source :