js闭包

/**
 * 闭包:使外部不能改变其属性或调用其方法,可以理解为js中私有化属性或方法的形式
 * 范式
 * ()()
 * 第二个括号为实参
 * 第一个参数为一个函数,函数的参数为形参,在匿名函数中所有的方法都可以使用
 *
 * 下面的写法的好处
 * 1、可以让一些函数私有化
 * 2、可以让一些函数公开化
 * 3、在匿名函数中声明的属性,在外部访问不到
 * 总结:实际上就是通过赋值给window将函数传出去,以达到公开效果
 */
(function(window){
function A(){
return{  //批量公开:返回一个JSON对象公共内部属性
C:C,
D:D
};

}
function B(){

}
function C(){ //要求公开
alert("dsf");
}
function D(){ //要求公开
alert(this);
}
window.A=A;  //通过该方式可以让一个函数成为一个公开函数
})(window);


var json = window.A();
json.C();
json.D();

原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266236.html