J'ai un assez grand nombre de fonctions javascript que je travaille à refactoriser en un ensemble de classes utilisant Prototype.simplifier la liaison des fonctions javascript anonymes à la classe
Je me demandais s'il y avait un moyen de rendre les fonctions anonymes de liaison à la classe plus simple? Je n'oublie pas d'ajouter le lien à la fin. Ou est-ce juste comme cela est fait tout le temps?
var arr = this.getSomeArray();
arr.each(function(t) {
t.update(val);
this.updateJSValue(t);
}.bind(this));
Y a-t-il un type d'augmentation/diminution des performances avec l'utilisation de la variable locale? La plupart des endroits où ils se produisent sont en double pour les boucles. – Casey
Je m'attendrais à ce que l'utilisation de la mémoire augmente légèrement, car les variables vivront plus longtemps en raison des fermetures, mais l'impact sur les performances devrait être négligeable. Notez que 'bind' utilise très probablement une variable locale. – outis
Ce commentaire a plus à voir avec l'exactitude que la performance, mais si vous voulez vous lier au même objet pour chaque itération, mettez 'self' en dehors de la boucle et l'impact sur les performances serait imperceptible; si vous voulez vous lier à un objet différent, déclarez 'self' dans le bloc de boucle. – outis