Para evitar a sobrescrição e conflitos entre variáveis, um espaço para nome pode ser gerado. O espaço para nome é um prefixo especial, que é implementado através de {} objetos em JS.
Em diferentes funções anônimas, um espaço de nome diferente é declarado de acordo com a função. As propriedades do objeto global em cada função anônima não são penduradas diretamente no Global, mas são penduradas no espaço para nome da função subanônima, como:
A cópia do código é a seguinte:
<script type = "text/javascript">
var global = {}
</script>
<script type = "text/javascript">
(função(){
var a = 123, a1 = 256;
Global.a = {}
Global.a.str = a;
}) ();
</script>
<script type = "text/javascript">
(função(){
var b1 = 123, b2 = 256;
Global.b = {}
Global.b.str = a;
}) ();
</script>
Se o programa na mesma função anônima for muito complexa e tiver muitos nomes de variáveis, o espaço para nome poderá ser expandido para gerar um espaço de nome secundário:
A cópia do código é a seguinte:
<script type = "text/javascript">
var global = {}
</script>
<script type = "text/javascript">
(função(){
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 () {
}
}) ();
</script>
Como a geração de espaços para nomes é uma função muito comum, a função de gerar espaços para nome pode ser definida ainda mais como uma função para facilitar a chamada, como segue:
A cópia do código é a seguinte:
<script type = "text/javascript">
var global = {}
Global.namespace = function (str) {
var arr = str.split ("."), o = global;
para (i = arr [0] == "global"? 1: 0; i <arn.length; i ++) {
o [arr [i]] = o [arr [i]] || {};
o = o [arr [i]];
}
}
</script>
Chamando a operação específica do espaço para nome:
A cópia do código é a seguinte:
<script type = "text/javascript">
// ==============================================================
// Função a
// Engenheiro a
// E -mail: [email protected] MSN: [email protected] "
// 2012-11-06
// ==============================================================
(função(){
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;
}) ();
Da mesma forma, seja o desenvolvimento direto da equipe com várias pessoas ou o trabalho em equipe indireto com indivíduos, é necessária boa manutenção.
1. Adicione os comentários de código necessários
2. Pare de conflitar JS, evite a proliferação de variáveis globais e use o espaço para nome razoavelmente