我得到了一個解釋,以免污染全局變量環境。 但是,爲什麼不直接聲明正常的函數並在最後調用它呢?爲什麼JQuery使用IIFE(立即調用函數表達式)
function$(){ some awesome code here with variables declared with var keyword}
$();
我得到了一個解釋,以免污染全局變量環境。 但是,爲什麼不直接聲明正常的函數並在最後調用它呢?爲什麼JQuery使用IIFE(立即調用函數表達式)
function$(){ some awesome code here with variables declared with var keyword}
$();
當你創建像一個函數:
function doSomething() {
...
}
據window
下創建的,它是作爲window.doSomething
訪問。因此,即使函數內部的變量不在外泄之外,函數名稱本身也會污染全局名稱空間。因此它可能會與開發人員可能希望使用的自定義函數衝突。
而是,當您使用IIFE並在jQuery
或$
下公開功能時,全局名稱空間保持清晰。
_「爲什麼不只是聲明正常的函數」_因爲聲明一個只有一件事情的正常函數(setup jQuery)本身就會污染全局範圍 –
重複的https://stackoverflow.com/questions/46339735/ javascript-self-executed-functions-why-to-use-them-if-i-can-create-local-sc –