首页 > 代码库 > 闭包与循环的结合
闭包与循环的结合
闭包应用的循环中:能存储异步的每次数据。
//例一: function constfunc(v){ return function(){ return v; }; }; var funcs=[]; for(var i=0;i<10;i++){ funcs[i]=constfunc(i)(); }; console.log(funcs[7]); //输出7 //对比上面的函数 //例二: function constfuncs(){ var funcs=[]; for(var i=0;i<10;i++){ funcs[i]=function(){ return i; }; }; return funcs; }; var funcs=constfuncs(); console.log(funcs[1]()); //输出10
上面的例子 例一返回每次存储的值;而例二则都是返回10;
闭包的作用域链都是‘活动的’,嵌套的函数不会将作用域内的私有成员复制一份;也不会对绑定的变量生成静态快照。
第二点:
this是关键字,(每个函数调用都包含一个this值)。闭包在外部函数里是无法访问this的,除非外部函数将this转存为一个变量:var that=this;
arguments并不是关键字,但是调用函数时都会自动声明它,由于闭包具有自己绑定的arguments,因此闭包无法直接访问外部函数的参数数组,除非外部函数将arguments保存在另一个变量中: var otherArguments=arguments;
闭包与循环的结合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。