javaScript闭包

var funcList = [];

for(var i=0; i<3; i++) {
  funcList.push((function() {
    return function() { console.log(i) };  // 此时引用全局变量i
  })());
}
                
for(var j=0; j<3; j++){
    funcList[j]();
}

输出结果:3 3 3

var funcList = [];

for(var i=0; i<3; i++) {
  funcList.push((function(a) {
    return function() { console.log(a) };   // 此时引用局部变量a
  })(i));
}
                
for(var j=0; j<3; j++){
    funcList[j]();
}

输出结果:0 1 2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是闭包? 有什么作用 闭包是指一个函数可以调用其他函数的变量。最常见的闭包就是一个函数嵌套另一个函数; 闭包的...
    尹萨萨阅读 399评论 0 0
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zouCode阅读 1,375评论 0 13
  • 闭包及其作用 闭包是能够读取其他函数内部变量的函数;相当于在草原上用栅栏单独围一片地只留一个进出口;只有通过返回出...
    柯良勇阅读 750评论 0 0
  • 小练习: 题目1: 下面的代码输出多少?修改代码让 fnArri 输出 i。使用两种以上的方法 改写方法一: 改写...
    Sketch阅读 288评论 0 0
  • 映月湖前折柳盛,荷塘未满叶先枯。 鸳鸯隐语听春老,一扫兴波锦鲤逐。 注:“扫湖”是我的学校里的一个兼职工作内容,每...
    露小冰阅读 259评论 0 1

友情链接更多精彩内容