自执行函数

589 阅读1分钟

自执行函数

我们创建了一个匿名的函数 ,并立即执行它 ,由于外部无法引用它内部的变量 ,因此在执行完后很快就会被释放 ,关键是这种机制不会污染全局对象。

自执行函数 ,即定义和调用合为一体 。

立即执行函数是什么

立即执行函数就是

  1. 声明一个匿名函数
  2. 马上调用这个匿名函数

如下实例 :

首先声明一个匿名函数 function (){ alert ('我是匿名函数')} 。

然后在匿名函数后面接一对括号 () ,调用这个匿名函数 。

立即执行函数有什么作用

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

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

如下图 :

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

那么怎么解决这个问题呢?用立即执行函数给每个 li 创造一个独立作用域即可 。

如下图所示 :

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

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

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