在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