命名空间

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>

这种方法

把在全局要使用的功能,放在了一个局部里,互不污染,是最常用的。

猜你喜欢

转载自blog.csdn.net/dfggffdd/article/details/80083070