Que moi-même ou moi-même, lequel prefere-t-il en JavaScript?

Bien que le codage de JavaScript, vous stockez parfois la référence d'objet dans une variable locale à des fins différentes (pour définir la portée appropriée, pour aider les obstructeurs de code, etc.). Il y a des codeurs qui préfèrent l'aliasing à that pour rendre évident son intention. D'autres types utilisent l' self car il montre l'objet lui-même. J'ai même vu des codes source où me tenu la référence et ça a du sens. Certes, il y en a d'autres.

Lequel préférais-je préférer? Existe-t-il une convention sur laquelle utiliser ou est-ce seulement la question du goût.

Je l'utilise personnellement, mais tout ce qui est clair est très bien.

Je ne voudrais pas utiliser selfself car la variable globale / window -property self existe déjà comme référence à la window . Bien qu'il soit totalement inutile (de sorte que personne ne craindra probablement que vous l'observez), cela augmente légèrement le risque que des erreurs stupides ne soient pas remarquées:

 var se1f= this; // mis-spelled (perniciously). or maybe you just forgot to write line onclick= function() { self.foo= 1; // whoops, just wrote to `window`! }; 

tandis que:

 var thot= this; onclick= function() { that.foo= 1; // error thrown }; 

Légèrement artificiel, mais JavaScript est tellement négligent de laisser tomber des erreurs que vous ne voulez vraiment plus le faire.

Il y a une orange dans votre panier de pommes là-bas, this a une signification contextuelle très spécifique. Le choix est vraiment entre self et me de ces options. Entre ceux … vous choisissez, cela ne concerne pas uniquement les préférences personnelles.

this réfère au contexte de votre participation, donc ce n'est pas vraiment une "option" sans introduire beaucoup de confusion et facile à commettre des erreurs. Je vois que self utilisation personnelle est beaucoup plus que me (dans le code d'exemple, les cadres, les bibliothèques, etc.). C'est juste une préférence, mais je suis self accord, c'est plus attrayant, je ne sais pas pourquoi … encore une fois, ma préférence.

Bien personnellement, j'essaie de faire mieux pour que la variable signifie quelque chose d'un peu plus que «ce dont j'ai besoin plus tard». Souvent, vous avez besoin de ces variables temporaires dans des situations qui sont un peu gnarly; Il peut y avoir deux ou plusieurs couches temporaires de this stashes pour garder une trace.

Ainsi, par exemple dans une configuration jQuery, je pourrais utiliser quelque chose pour noter le type d'élément qu'un temporaire this stash devrait contenir:

 $('form').each(function() { var $form = $(this); $form.find('input:checkbox').each(function() { var $checkbox = $(this); // ... }); }); 

L'utilisation du préfixe "$" sur les variables est une bonne façon de suivre si l'objet a été "jQuery-ized" ou non 🙂