命名空间
Javascript命名空间
Javascript命名空间
在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,例如:
var sayHello = function() {
return 'Hello var';
};
function sayHello(name) {
return 'Hello function';
};
sayHello();
最终输出为
Hello var
避免全局变量名冲突的最好办法还是创建命名空间。
命名空间作用:
管理变量,防止污染全局,适用于模块化开发。
1.通过对象(Object)创建。
<script type="text/javascript">
var test = {
mike : {
father : {},
sister : {
name : 'cite',
},
},
max : {
father : {},
son : {
lastName : 'bai',
}
}
}
</script>
比如要调用一个test里面的mike里面的sister的name
console.log(test.mike.sister.name)
简化一下可以这么写
var name = test.mike.sister.name;
console.log(name);
不过这样的话就失去了创建命名空间的意义。
这种使用对象来实现命名空间的方法不常用。
2.通过闭包(Closure)和Object实现
<script type="text/javascript">
var init = (function () {
var name = '墨小白';
function test() {
console.log(name);
}
return function () {
test();
}//通过return保存到外部形成闭包.
}());
init();//输出墨小白
</script>
这种方法
把在全局要使用的功能,放在了一个局部里,互不污染,是最常用的。
还没有评论,来说两句吧...