资讯专栏INFORMATION COLUMN

IIFE跟闭包的理解

pumpkin9 / 2416人阅读

摘要:一言不合,翠花,上酸菜随便写个函数哈你猜会怎么输出哦,这是为什么呢奥,这个嘛,就是说的块级作用域问题下面开始回归正题其实你这样写,结果也是一样留空太暴力了,也是来看看跟闭包结合大法其实,搞了半天,有个更吊炸天的技能,都没想告诉你,知道为什么

一言不合,
翠花,
上酸菜!

//随便写个函数哈
var arr=[];
for(var i=0;i<3;i++){
    arr[i]=function(){
        return i;
    }
}
//你猜会怎么输出
console.log(arr[0]());//3
console.log(arr[1]());//3
console.log(arr[3]());//3

哦,这是为什么呢?
奥,这个嘛,就是说的块级作用域问题
下面开始回归正题:
其实你这样写,结果也是一样:

var arr=[];
for(var i=0;i<3;i++){
    //留空
}
console.log(i)//太暴力了,也是3!

来看看IIFE跟闭包结合大法:

var arr=[];
for(var i=0;i<3;i++){
    (function(i){
        arr[i].function(i){
            return i;
        }
    })(i);
}
console.log(arr[0]());//0
console.log(arr[1]());//1
console.log(arr[2]());//2

其实,搞了半天,有个更吊炸天的技能,
都没想告诉你,知道为什么那么多人喜欢ES6,
因为真的非常666:

var arr=[];
for(let i=0;i<3;i++){
    arr[i]=function(){
        return i;
    }
}
//This is a Amazing world!
console.log(arr[0]());//0
console.log(arr[1]());//1
console.log(arr[2]());//2

var 要哭了,真的,怎么可以这样,
卑鄙!下流!无耻!打码
...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103878.html

相关文章

  • Effective JavaScript读书笔记(二)

    摘要:尽可能的使用局部变量,少用全局变量。正确的实现就是在函数体内部使用将声明成局部变量。在新特性中,引入了块级作用域这个概念,因此还可以使用,来声明局部变量。它们共享外部变量,并且闭包还可以更新的值。 变量作用域 作用域,对于JavaScript语言来说无处不在,变量作用域,函数作用域(运行时上下文和定义时上下文),作用域污染等等都跟作用域息息相关,掌握JavaScript作用于规则,可以...

    Yuqi 评论0 收藏0
  • 进击 JavaScript(五) 之 立即执行函数与闭包

    摘要:匿名函数是不能单独写的,所以就提不上立即执行了。六立即执行函数在闭包中的应用立即执行函数能配合闭包保存状态。来看下上节内容中闭包的例子现在,我们来利用立即执行函数来简化它第一个匿名函数执行完毕后,返回了第二个匿名函数。 前面的闭包中,提到与闭包相似的立即执行函数,感觉两者还是比较容易弄混吧,严格来说(因为犀牛书和高程对闭包的定义不同),立即执行函数并不属于闭包,它不满足闭包的三个条件。...

    vincent_xyb 评论0 收藏0
  • 简单理解JavaScript中闭包

    摘要:闭包在我理解是一种比较抽象的东西。所以我写了一篇博文来方便自己理解闭包。那么现在我们可以解释一下闭包的第一个定义在计算机科学中,闭包是引用了自由变量的函数。循环中创建闭包在我们使用的关键字之前,闭包的一个常见问题就出现在循环中创建闭包。 零. 前言 从我开始接触前端时就听说过闭包,但是一直不理解闭包究竟是什么。上网看了各种博客,大家对闭包的说法不一。闭包在我理解是一种比较抽象的东西。所...

    sihai 评论0 收藏0
  • 重读你不知道JS (上) 第一节五章

    摘要:词法作用域的查找规则是闭包的一部分。因此的确同闭包息息相关,即使本身并不会真的使用闭包。而上面的创建一个闭包,本质上这是将一个块转换成一个可以被关闭的作用域。结合块级作用域与闭包模块这个模式在中被称为模块。 你不知道的JS(上卷)笔记 你不知道的 JavaScript JavaScript 既是一门充满吸引力、简单易用的语言,又是一门具有许多复杂微妙技术的语言,即使是经验丰富的 Jav...

    worldligang 评论0 收藏0

发表评论

0条评论

pumpkin9

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<