首页 > 其他 > 详细

关于闭包我想说的

时间:2016-08-10 21:07:58      阅读:259      评论:0      收藏:0      [点我收藏+]

闭包是保护并重用局部变量的机制
为什么用: 全局变量: 优: 随处可用,可重用,缺: 易被污染
局部变量: 优: 仅在函数内用,安全,缺: 不可重用
何时使用: 希望重用一个变量,又不希望被污染时-保护局部变量
如何定义: 3步:
1. 定义受保护的局部变量
2. 定义内层函数专门操作受保护的变量
3. 定义外层函数将受保护的变量和操作变量的函数封装起来,外层函数将内层函数返回到外部

 

<script>

function fun(){
for(var i=0,arr=[];i<3;i++){
//函数定义时不执行函数体
arr[i]=function(){return i};
}//i=3
return arr;
}
var funs=fun();
//funs:[
// function(){return i},
// function(){return i},
// function(){return i}
//]
console.log(funs[0]());//3
console.log(funs[1]());//3
console.log(funs[2]());//3

function f(){
var n=999;
/*window.*/nAdd=function(){n++};
return function(){return n;}
//n=999
}
var get=f();
//f共抛出了几个内层函数:
//get: function(){return n;}
//nAdd: function(){n++}
console.log(get());//999
nAdd();
console.log(get());//1000

</script>

关于闭包我想说的

原文:http://www.cnblogs.com/tracy-zhu/p/5758170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!