蓝山帝景
我博客笔记的原文链接闭包定义:定义在一个函数内的函数。闭包作用:1.将函数作为参数传入另外一个函数。var arr = [2,10,6,9,7,8];var arr1 = arr.sort(function(a,b){ return a-b;
});
alert(arr1); //2,6,7,8,9,10alert(arr); //2,6,7,8,9,102.实现封装,管理私有变量和私有方法,将变量(状态)的变化封装在安全的环境中。var person = function(){
//变量作用域为函数内部,外部无法访问,不会与外部变量发生重名冲突
var name = "default";
return { //管理私有变量
getName : function(){
return name;
},
setName : function(newName){
name = newName;
}
}
}();3.匿名自执行函数。在匿名自执行函数传入一个闭包函数,匿名自执行函数执行完立即销毁,可以减小内存消耗。(function(){
var foo = function(){
alert("执行完这个闭包后,立即销毁");
};
foo();})();4.让变量始终保持在内存中,内存消耗会很大,这是一个缺点。