当即执行函数(IIFE),也叫作自执行函数,就是不须要调用就立马执行的函数。函数
在解释当即函数的时候,咱们先了解一下三个函数相关的知识:插件
函数声明:ip
function fun() {作用域
} 函数表达式: var fun = function () {源码
} 匿名函数: function() {io
}console
当即函数有两种常见格式:function
(function() { console.log(999) }())匿名函数
(function() { console.log(999) })()基础
这两种格式都能保证函数立马执行,这也是当即函数的基础常见的格式,()运算符加上匿名函数,还有另外几种格式也能当即执行:
!function() { console.log(999) }()
+function() { console.log(999) }()
-function() { console.log(999) }()
=function() { console.log(999) }()
Var fun = function() { console.log(999) }()
运算符!、+、-、=和函数表达式都能打到当即执行。上面的方法,是匿名函数加上运算符,其实把匿名函数都换成函数声明也是同样的,也能变成当即执行函数:
!function fun() { console.log(999) }()
那么咱们为何要使用当即函数呢?咱们都知道JavaScript没有块级做用域,只要函数做用域,当即函数最大的用途就是建立一个函数做用域,也就是建立一个私有的空间。
咱们都知道jQuery就是一个匿名函数,看源码能够看见jQuery全部内容都包含在匿名函数里面
( function( global, factory ) {
}
建立一个函数做用域是全部JS插件必需要有的功能,以确保各JS插件建立的变量不能和其余JS插件的变量还有引入使用程序的变量发生冲突。
欢迎关注Coding我的笔记 公众号