自执行函数
我们创建了一个匿名的函数 ,并立即执行它 ,由于外部无法引用它内部的变量 ,因此在执行完后很快就会被释放 ,关键是这种机制不会污染全局对象。
自执行函数 ,即定义和调用合为一体 。
立即执行函数是什么
立即执行函数就是
- 声明一个匿名函数
- 马上调用这个匿名函数
如下实例 :
首先声明一个匿名函数 function (){ alert ('我是匿名函数')} 。
然后在匿名函数后面接一对括号 () ,调用这个匿名函数 。
立即执行函数有什么作用
-
只有一个作用 :创建一个独立的作用域 。
-
这个作用域里面的变量 , 外面访问不到(即避免「变量污染」)。
如下图 :
为什么 alert 的总是 6 呢,因为 i 是贯穿整个作用域的,而不是给每个 li 分配了一个 i 。
那么怎么解决这个问题呢?用立即执行函数给每个 li 创造一个独立作用域即可 。
如下图所示 :
在立即执行函数执行的时候 ,i 的值被赋值给 ii ,此后 ii 的值一直不变 。
i 的值从 0 变化到 5 ,对应 6 个立即执行函数 ,这 6 个立即执行函数里面的 ii 分别是 0、1、2、3、4、5 。
以上,就是立即执行函数的基本概念 。