随着网站开发的复杂度越来越高,js代码和js文件的增多,出现了开发者头疼的两个问题:① 命名冲突;②文件依赖。
js模块化开发可以解决这些问题。
①变量命令冲突
在js文件中,如下创建一个变量并赋予一个函数。如果文件的代码过多,在后续的代码中再次使用add变量,就会将原来的add变量覆盖,就造成了变量的命名冲突。
var add=function(v1,v2){
return v1+v2;
}
// 此处省略一万行代码
var add = 123;
我们逐渐试着重代码进行改善
(1)对象封装
var calculator={
num:123;
}
calculator.add=function(v1,v2){
return v1+v2;
}
这时候 add的作用范围在caculator对象中,就不会避免后续代码直接写 var add = value 造成变量命名冲入。但是这样的代码还是有很大的局限性,对象里面的属性和方法很容易被修改掉,很不安全。
(2)划分私有命名空间
var calculator=(function(){
var num=123;
var add=function(v1,v2){
return v1+v2;
};
return {
num:num,
add:add
}
})()
通过匿名函数&#