8 js之匿名函数(闭包)
2018-05-29 本文已影响0人
一枝妖孽
/**
* 闭包:在函数内部定义的函数,在外部调用
*
* 作用:可以把一些函数私有化
*
* 闭包
* 范式 ()()
* 第一个参数是一个函数,函数中的参数为形参,在匿名函数中的所有方法都可以使用
* 第二个括号内是实参
*
* 下面的写法有以下好处
* 1 可以让一些函数私有化
* 2 可以让一些函数公开化
* 3 在匿名函数中声明的属性在外部无法访问
*
*/
//匿名函数====自己执行
(function(a){
alert("闭包函数中的"+a);
})(5);// 5 是实际参数
/*
* ==========================
*/
function Person(){
function Student(){
alert("aaaaaa");
}
}
//调用 Student();
Student();//Student undefined 未定义
//随便谁都可以修改 a属性的值
Person.a=5;
/*
* ==========================
*/
(function(window){
function A(){//私有的
alert("AAAA");
B();
return {
C:C,
D:D
};
}
function B(){//私有的
alert("BBBBB");
}
function C(){//公开的
alert("CCCC");
}
function D(){//公开的
alert("DDDD");
}
window.A=A;//通过该方式,可以让一个函数称为公开的函数
})(window);
//window.A();
var json=window.A();//拿到A的返回值{C:C,D:D}
json.C();
json.D();