什么'新旧javascript函数语法的区别

What's the difference b/w old and new javascript function syntax?

本文关键字:函数 语法 区别 javascript 新旧 什么      更新时间:2024-01-23

可能重复:
JavaScript:var functionName=function(){}vs function functionName(){}

Foo和Bar有什么不同?

如果对象只是函数,为什么要引入这种新语法?(Foo)。

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
*/

我读过的大量文档提出了第一种语法,但第二种似乎也同样有效。

不同之处在于:

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