關於函數聲明:若是 function 是聲明中的第一個詞, 那麼就是一個函數聲明, 不然就是一個函數表達式。例如匿名函數這種形式,函數會被看成函數表達式而不是一個標準的函數聲明來處理。javascript
(function(){ // 當即執行函數表達式 })()
這種表達式有另一種用途是倒置代碼的運行順序, 將須要運行的函數放在第二位, 在 IIFE執行以後看成參數傳遞進去。java
var a = 2; (function IIFE( def ) { def( window ); })(function def( global ) { var a = 3; console.log( a ); // 3 console.log( global.a ); // 2 });