2012-05-16 126 views
0

可能重复:
JavaScript: var functionName = function() {} vs function functionName() {}JavaScript函数声明差异

是什么在这个函数声明的区别,我知道例如,一个是做正常的方式,我们为什么需要两年三?

function one(var1,var2) { 
    alert("inside functtion one"); 
} 

two = function (var1,var2) { 
    alert("inside function two"); 
} 

var three = function (var1,var2) { 
    alert("inside function three"); 
} 
+2

三和一个是(对于这个例子)相同..两个范围??将它附加到窗口对象iirc? – rlemon

+0

查看:http://net.tutsplus.com/tutorials/javascript-ajax/the-basics-of-object-oriented-javascript/ –

+0

@rlemon三和一个微妙的不同,你可以在声明之前调用一个,但是在分配之后你不能拨打三。另外一个是命名函数,而三个是匿名的,但你可以解决这个问题。 – Neil

回答

0

第一个和第三个只是两种方法来声明一个函数,它在全局范围链中存在。中间是将函数two附加到窗口对象并允许它存在那里。

console.log(window.one); // undefined 
console.log(window.two); 
console.log(window.three); // undefined 
+0

注意:这只是**一个**区别。根据上下文的不同,你在闭包中问你的问题与它有很大关系。这些声明在哪里发生? – rlemon

+0

它的脚本在标题 – JohnA

+0

中的页头中运行,这有什么区别?不在文档中的相对于其他JavaScript代码的位置。它在关闭吗? – rlemon