PC & Mobile

[…].forEach (saveFromZombies) ne sauve pas toujours les gens

[…].forEach (saveFromZombies) ne sauve pas toujours les gens


Les morts ambulants!!

je codait comme d'habitude. Et j'ai fait face à une étrange rencontre avec pour chaque travaux. Voici le code pour donner un exemple de cela. Imaginez que le code ci-dessous est le code d’une des bibliothèques que j’utilisais:

Et j’ai repéré le code dans l’application de mon entreprise qui était plutôt génial:

Bien sûr, je ne voulais pas cela. C’est contre le principe DRY. J'ai donc refactoré le code pour:

Plus cool et plus succinct.

Mais j'ai très bien été amené à penser que cela fonctionnerait. Voir ce que ce code a donné:

Oops. Tout le monde est mort. D'accord. Vous commencez maintenant à comprendre pourquoi.

C’est la reliure. Voyons ce que cette est en train de faire dans notre code:

Eh bien, pas de surprise. Il produit:

D'accord. Voici donc le point principal de cet article:

En passant juste dans la référence d’une fonction qui utilise cette se référant à un endroit autre qu'un globalThis, dans une pour chaque pourrait causer une erreur en javascript parce que cette va pointer vers un global cette.

Alors que faisons-nous? Voici quelques choses à vous faire savoir:

Ouais ça marche. Cela sauvera une partie de la vie des gars.

Idem pour la normale une fonction ainsi que:

Ce sont les paramètres pour pour chaque:

Vous pouvez mettre dans l'objet à désigner comme cette à l'intérieur sauverDeZombies.

Ceci est une liaison explicite. Vous dites au moteur javascript que vous voulez sauverDeZombies être attaché à les morts ambulants objet.

Bien sûr, nous pouvons et devrions appliquer le même principe lorsque nous traitons carte, filtre, ... et plus.

  • Nous avons regardé comment cette perdre le contexte lorsque nous mettons une référence d'une fonction en tant que rappel à pour chaque.
  • Les solutions sont les suivantes: (1) appeler explicitement la fonction, (2) passer thisArg comme argument, et (3) utiliser lier.

Content pour chaque codage!

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer