2012-07-23 45 views
0

可能重复:
JavaScript: var functionName = function() {} vs function functionName() {}旧的和新的JavaScript函数语法有什么不同?

如何foo和bar有什么不同?

如果对象只是函数,为什么会引入这个新的语法? (富)。

var Foo = function(arg) { 
    this.attr = arg; 
}; 

function Bar (arg) { 
    this.attr = arg; 
} 


/* 
>>> f = new Foo(3) 
Object { attr=3} 
>>> f.attr 
3 
>>> b = new Bar(40) 
Bar { attr=40} 
>>> b.attr 
40 
*/ 

我读过的大量文档提出了第一个语法,但第二个文档似乎也工作得很好。

+2

什么新的语法? – BoltClock 2012-07-23 14:54:54

+2

我觉得这已经被问了很多,谷歌有点... – quickshiftin 2012-07-23 14:54:56

+1

[允许John Resig为你解决这个问题](http://ejohn.org/apps/learn/#9)。 – 2012-07-23 14:56:56

回答

-1

的差异来这里:

console.log(typeof foo); //'function' 
function foo() { 
} 

console.log(typeof bar); //'undefined' 
var bar = function() { 
} 
+0

虽然这说明了主要差异的影响,但它根本没有解释它。 – Quentin 2012-07-23 15:02:03

+0

我认为这个例子已经够清楚了,不需要进一步解释。 – 2012-07-23 15:09:57

相关问题