es6中可以代替立即执行函数替换吗

一、 立即执行函数替换是什么

1. 聲明一个匿名函数替换

2. 马上调用这个函数替换

  1. 用括号 把这个函数替换包起来

为什么要在函数替换加括号?

二、 立即执行函数替换有什么用

只有一个作用:创建一个独立的作用域。

这个作用域里面的变量外面访问不到(即避免「变量污染」)。

为什么 alert 的总是 6 呢因为 i 是贯穿整个作用域的,而不是给每个 li 分配了一个 i如下:

那么怎么解决这个问题呢?用立即执行函数替换给每个 li 创造一个独立作用域即可(当嘫还有其他办法):

在立即执行函数替换执行的时候i 的值被赋值给 ii,此后 ii 的值一直不变

i 的值从 0 变化到 5,对应 6 个立即执行函数替换这 6 個立即执行函数替换里面的 ii 「分别」是 0、1、2、3、4、5。

以上就是立即执行函数替换的基本概念。

}

假如在同一个目录下两个js里面鈳能有同名函数替换,后面js里定义的函数替换会覆盖前面js定义的函数替换为了避免冲突,要用模块化的思想解决问题大家可能都会使鼡立即执行函数替换去解决。

使用立即执行函数替换而不是直接暴露也做到来私有化private的意思比如有5个函数替换,我只想暴露1个函数替换給别人那么window.js1 = {你想暴露的1个函数替换},这样别人就只能访问你暴露的唯一函数替换另外4个访问不了。

除此之外我们能用其他的方法吗?既然是解决作用域的问题那么我们也可以利用块级作用域来解决这个问题

ES6中出现了let,在块级作用域之外调用不到那么新的写法就来叻。

执行效果一样也是一样的

关注、留言,我们一起学习

}

我要回帖

更多关于 es6对象方法和箭头函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信