在JavaScript中,是什麼在範圍函數聲明和函數表達式之間的區別?函數聲明意味着我們正在污染全球空間。函數表達式是否一樣?函數聲明 - 函數表達式 - 範圍
函數聲明
function sum(){
// logic goes here
}
功能表達
var sum = function(){}
在JavaScript中,是什麼在範圍函數聲明和函數表達式之間的區別?函數聲明意味着我們正在污染全球空間。函數表達式是否一樣?函數聲明 - 函數表達式 - 範圍
函數聲明
function sum(){
// logic goes here
}
功能表達
var sum = function(){}
至於污染封閉範圍推移,二者是等效的。請注意,它不一定是全局範圍 - 它是聲明函數的範圍(在其他函數中允許本地函數)。在你的例子中,兩種方法都將一個名爲sum
的變量(函數對象)引入本地作用域。
兩者都在範圍等同。函數聲明另一個函數內部不會是全球性的。所不同的是,你可以在任何時候使用聲明功能(因爲它是懸掛任何代碼運行之前),分配給一個變量,您分配它後纔會表達的功能。
(function() {
bar(); // works
function bar() { } // is not global
foo(); // doesn't work
var foo = function() { };
})();
http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname和http://stackoverflow.com/questions/1013385/what-is-the-差之間-A-函數表達式-VS-聲明-在JavaScript的 – Phil 2010-11-10 05:19:32