一、 立即执行函数替换是什么
1. 聲明一个匿名函数替换
2. 马上调用这个函数替换
- 用括号 把这个函数替换包起来
为什么要在函数替换加括号?
二、 立即执行函数替换有什么用
只有一个作用:创建一个独立的作用域。
这个作用域里面的变量外面访问不到(即避免「变量污染」)。
为什么 alert 的总是 6 呢因为 i 是贯穿整个作用域的,而不是给每个 li 分配了一个 i如下:
那么怎么解决这个问题呢?用立即执行函数替换给每个 li 创造一个独立作用域即可(当嘫还有其他办法):
在立即执行函数替换执行的时候i 的值被赋值给 ii,此后 ii 的值一直不变
i 的值从 0 变化到 5,对应 6 个立即执行函数替换这 6 個立即执行函数替换里面的 ii 「分别」是 0、1、2、3、4、5。
以上就是立即执行函数替换的基本概念。