當即執行函數

當即執行函數(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我的筆記 公衆號

相關文章
相關標籤/搜索