/**
* 闭包:在函数1中写一个函数2,并在函数1外调用函数2
* 范式:()()
* 第一个参数是一个函数,函数中的参数为形参
* 第二个括号是实参
*
* 以下形式的好处:
* 1.可以手动地指定哪些函数需要公开化或私有化
* 2.在匿名函数中声明的属性,在外部是访问不到的
*/
/* 这种是一种闭包,但是不规范
function test1(){
function test2(){
alert("hahah");
}
}
test2();
*/
(function(window){
var i = 20;
function A(){//私有的
alert("A");
/* 因为在下面有window.A = A;这样意味着A对象可在外部调用,同样A中返回的json对象也可以在外部调用
* 多个对象需要返回如果window.A = A; window.B = B这种形式写也可以
* 以下json形式也可以
*/
return {
C:C,
D:D,
I:i
};
}
function B(){//私有的
alert("B");
}
function C(){//公开的
alert("C");
}
function D(){//公开的
alert("D");
}
window.A = A;//通过该方式可以让一个函数称为一个公开的函数
})(window);
var json = window.A();
json.C();
json.D();
json.I = 10;//可以改变匿名函数中的变量的值
alert(json.I);//10
JavaScript加强之匿名函数(闭包)
最新推荐文章于 2024-08-25 19:13:29 发布