2011-10-05 3 views
1

Je suis nouveau sur javascript, d'après ce que je lis, les variables globales sont une mauvaise pratique car elles polluent l'espace de noms global. L'un des problèmes auxquels je suis constamment confronté est la portée variable. J'ai lu quelque part que d'une façon de résoudre les deux problèmes est de créer un objet vide:Encapsulating Globals Bonne pratique JavaScript?

allvars = {} 

Et puis coller toutes les variables je autrement définies comme mondial, en tant que propriétés à l'intérieur de cet objet:

allvars.animal = 'bear'; 
allvars.sliderSpeed = 1000; 

Jusqu'à présent, cela me semble une excellente idée, puisque maintenant je peux accéder à mes variables n'importe où, peu importe la portée et aussi puisque toutes les vars sont à l'intérieur de cet objet, ils ne sont pas globaux.

Y a-t-il un inconvénient à cette façon de faire les choses? Y a-t-il un meilleur moyen?

Répondre

1

Si ces variables doivent vraiment avoir une portée globale et être accessibles partout, alors c'est la meilleure façon de le faire car cela ne fait qu'introduire une variable globale allvars dans l'espace de noms global. Si j'étais vous, je ferais en sorte que ce nom mondial soit un peu plus unique, donc il y aurait moins de risque de conflit avec quoi que ce soit d'autre. Mais, à part ça, vous êtes sur la bonne voie. Quand on entre vraiment dans la programmation orientée objet, il y a de moins en moins de choses qui doivent vraiment être globales car vous pouvez stocker la plupart de votre état sur des objets pertinents (non globaux) et y accéder. Évidemment, nous ne connaissons pas votre application dans ce cas, donc nous ne pouvons pas vraiment dire si ces paramètres doivent être globaux ou non.