《你不知道的JavaScript(上)》筆記——函數做用域和塊做用域

關於函數聲明:若是 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
});
相關文章
相關標籤/搜索