匿名自執行函式的引數為什麼是window和undefined
在當前很多的庫中,都是以一個匿名自執行函式作為程式碼的起始。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼(function( window, undefined ) { // code })(window);
大家可以注意到,這個匿名自執行函式具有兩個形參;但是通常只傳遞一個window物件實參。
下面就介紹一下這其中的原因,感興趣的朋友可以做一下參考。
傳入window物件作為引數,是為了將其從全域性資料變為一個區域性資料,這樣在函式作用域就可以直接訪問window物件,而不用將作用域鏈退回到頂層作用域了;之所以規定了undefined形參,但是沒有傳遞實參,這是為了確保undefined是真正的undefined,因為有些條件下undefined會被重寫。
相關文章
- 深入理解 函式、匿名函式、自執行匿名函式函式
- js 匿名自執行函式JS函式
- JavaScript 匿名立即自執行函式JavaScript函式
- 最為常見的匿名函式自執行方式分享函式
- Python函式引數和註解是什麼Python函式
- 胡扯JS系列-匿名函式的自動執行JS函式
- js匿名函式和具名函式執行效率比較JS函式
- 為什麼不建議函式有太多引數?函式
- call和apply第一個引數為null/undefined,函式this指向全域性物件APPNullUndefined函式物件
- 寫了一個分段函式,引數是單個數字,執行函式 畫圖函式
- java為什麼匿名內部類的引數引用時final?Java
- JavaScript 匿名函式與具名函式執行效率比較JavaScript函式
- 關於C++引用做為函式引數和指標作為函式引數C++函式指標
- 塊級作用域替代“匿名立即執行函式表示式(匿名IIFE)”函式
- MySQL 對window函式執行sum函式疑似BugMySql函式
- Python中函式為什麼可以當做引數使用?Python函式
- 學習javaScript必知必會(1)~js介紹、函式、匿名函式、自呼叫函式、不定長引數JavaScriptJS函式
- window.open()函式引數用法詳解函式
- 自執行函式函式
- 什麼是線上優雅停機和調整執行緒池引數?執行緒
- 執行緒join為什麼在解構函式中執行緒函式
- setTimeout()函式中為什麼this指向全域性物件window函式物件
- js中自執行函式的怪異行為研究JS函式
- 自執行函式的理解函式
- axios進度條功能onDownloadProgress函式total引數為undefined問題iOS函式Undefined
- PHP vs Go,為什麼 Go 不支援命名引數呼叫函式?PHPGo函式
- 物件,函式作為一個函式的引數物件函式
- 函式基礎和函式引數函式
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- 為什麼Redux 需要 reducers是純函式?Redux函式
- 陣列作為函式引數陣列函式
- 函式定義、函式的引數、函式的預設引數函式
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- 帶有“非簡單引數”的函式為什麼不能包含 "use strict" 指令函式
- 函式的呼叫方式和引數函式
- Redis為什麼是單執行緒?為什麼有如此高的效能?Redis執行緒
- 為什麼?為什麼StringBuilder是執行緒不安全的?UI執行緒
- 為什麼類中的執行緒函式必須要宣告靜態?執行緒函式