Javascript 的命名空间

什么是命名空间?

命名空间是编程语言为了防止命名冲突的一种方式,比如 PHP 里,就会有 namespace 这样的声明方式。那么JavaScript呢,其实没有,但是,可以用一个空对象来替代。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

namespace MyProject {
$a = 11;
function add() {
global $a;
echo $a;
}
}

namespace MyProject2 {
$a = 11;
function add() {
global $a;
echo $a;
}
}

//虽然这两个程序块的内容是一致的,但是,因为不在同一个命名空间里,所以互相不影响。

1
2
3
4
5
6
7
8
9
10
11
12
13

var cnt = (function() {
var num = 11;
return function() {
return num++;
}
})();

var W13 = {};
W13.cnt = cnt;

W13.cnt();

这样就可以有效防止命名冲突的问题。