Afin d'éviter l'écrasement et les conflits entre les variables, un espace de noms peut être généré. L'espace de noms est un préfixe spécial, qui est implémenté via des objets {} dans JS.
Dans différentes fonctions anonymes, un espace de noms différent est déclaré selon la fonction. Les propriétés de l'objet global dans chaque fonction anonyme ne sont pas directement accrochées à Global, mais sont accrochées dans l'espace de noms de la fonction sous-anonyme, telle que:
La copie de code est la suivante:
<script type = "text / javascript">
var global = {}
</cript>
<script type = "text / javascript">
(fonction(){
var a = 123, a1 = 256;
Global.a = {}
Global.a.str = a;
}) ();
</cript>
<script type = "text / javascript">
(fonction(){
var b1 = 123, b2 = 256;
Global.b = {}
Global.b.str = a;
}) ();
</cript>
Si le programme dans la même fonction anonyme est très complexe et a de nombreux noms de variables, l'espace de noms peut être élargi pour générer un espace de noms secondaire:
La copie de code est la suivante:
<script type = "text / javascript">
var global = {}
</cript>
<script type = "text / javascript">
(fonction(){
var a = 123, a1 = 256;
Global.a = {};
Global.a.cat = {};
Global.a.dog = {};
Global.a.cat.name = "mini";
Global.a.cat.move = function () {
}
Global.a.dog.name = "mini";
Global.a.dog.move = function () {
}
}) ();
</cript>
Étant donné que la génération d'espaces de noms est une fonction très courante, la fonction de génération d'espaces de noms peut être définie en outre comme une fonction pour les appels faciles, comme suit:
La copie de code est la suivante:
<script type = "text / javascript">
var global = {}
Global.namespace = fonction (str) {
var arr = str.split ("."), o = global;
for (i = arr [0] == "global"? 1: 0; i <arr.length; i ++) {
o [arr [i]] = o [arr [i]] || {};
o = o [arr [i]];
}
}
</cript>
Appeler l'opération spécifique à l'espace de noms:
La copie de code est la suivante:
<script type = "text / javascript">
// =======================================================================.
// fonction a
// ingénieur a
// Courriel: [email protected] msn: [email protected] "
// 2012-11-06
// =======================================================================.
(fonction(){
var a = 123, a1 = "Hello World";
Global.namespace ("a.cat");
Global.namespace ("a.dog");
Global.a.cat.name = "mini";
Global.a.cat.move = function () {
}
Global.a.dog.name = "mini";
Global.a.dog.move = function () {
}
Global.a.str = a;
Global.a.str1 = a1;
}) ();
De même, qu'il s'agisse d'un développement d'équipe direct avec plusieurs personnes ou un travail d'équipe indirect avec des individus, une bonne maintenabilité est nécessaire.
1. Ajouter les commentaires du code nécessaires
2. Empêcher JS de contradiction, évitez la prolifération des variables globales et utilisez raisonnablement l'espace de noms