Bonjour à tous,
Je voudrais savoir, pour quelle raison la déclaration de variables globales en javascript est peu appréciée, d'après les echos.
Merci d'avance pour vos réponses.
Bonjour à tous,
Je voudrais savoir, pour quelle raison la déclaration de variables globales en javascript est peu appréciée, d'après les echos.
Merci d'avance pour vos réponses.
C'est à cause, notamment, de ce qui est expliqué là : FAQ : Pourquoi faut-il toujours déclarer ses variables ?
Pour résumer, quand tu déclares une variables sans le mot clé "var", elle devient une propriété de l'objet implicite : window. Comme Javascript est l'implémentation de la norme ECMAScript et que chaque navigateur à sa propre implémentation, il faut être vigilent. Surtout avec les anciennes version d'IE comme c'est bien expliqué dans le lien ci-dessus.
Comme les variables partagent le même namespace global (window) si tu as plusieurs scripts que tu ne maitrises pas (d'autres auteurs), ceux-ci peuvent avoir des "variables globales" du même nom, source d'erreur dans l'exécution des scripts de ta page.
Pour être propre dans la déclaration, utiliser ça : FAQ : Comment créer une variable globale dans une fonction ?
Mais je pense que la meilleure démarche à utiliser est "d'englober ton code" dans une fonction qui retourne un objet qui contient les fonctions/variables qui ont besoin d'être utilisés à l'extérieur de ce module. Un peu à la méthode des "modules pattern" qu'utilisent les librairies externes javascript (jquery etc)
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var MON_MODULE = (function() { var ma_var_publique = 10; return { // une fonction qui peut accéder à ma_var_publique à l'extérieur du module get_var_publique: function() { return ma_var_publique; } }; })(); // Pour accéder à ma_var_publique à l'extérieur du module : alert(MON_MODULE.get_var_publique());
Merci pour la réponse, est que c'est vraiment la seule raison?![]()
heu il y a deux raison exposées ci dessus ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Si tu veux plus de détail, je te conseille de lire des articles intéressants de la part des "mentors" de Javascript.
Par exemple l'article : Douglas Crockford - Global variables are evil, qui explique parfaitement pourquoi il faut être vigilant avec.
Ou de ce même auteur, JSLint - outil d'analyse de code JS détecte ces variables (entre beaucoup d'autres choses).
C'est vrai SpaceFrog, desolé, je me suis mal exprimé, je voulais dire plutôt Est-ce qu'il y a que ça comme raisons".
Kaamo, merci beaucoup pour ces références, je vais bouquiner ça.![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager