闭包的作用
学习文章
----阮一峰的网络日志
---- js闭包的用途
总结笔记
闭包定义:定义在一个函数内部的函数,静态保存所有了父级作用域的内部函数。
作用:
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,10 alert(arr); //2,6,7,8,9,10
2.实现封装,管理私有变量和私有方法,将变量(状态)的变化封装在安全的环境中。
var person = function(){ //变量作用域为函数内部,外部无法访问,不会与外部变量发生重名冲突 var name = "default"; return { //管理私有变量 getName : function(){ return name; }, setName : function(newName){ name = newName; } } }();
3.匿名自执行函数。在匿名自执行函数传入一个闭包函数,匿名自执行函数执行完立即销毁,可以减小内存消耗。
(function(){ var foo = function(){ alert("执行完这个闭包后,立即销毁"); }; foo(); })();
4.让变量始终保持在内存中,内存消耗会很大,这是一个缺点。