使用" new"用函数表达式?

时间:2016-01-21 15:48:14

标签: javascript

使用之间是否存在一些功能差异:

var Hello = function() {
    this.a = 1;
    this.b = 2;
};

hello = new Hello();
hello.a; // 1
hello.b; // 2

以及您使用的最常用方式:

function Hello() {
  this.a = 1;
  this.b = 2;
}

hello = new Hello();
hello.a; // 1
hello.b; // 2

据我所知,function()中的代码是一个构造函数,仅此而已。两者都根据他们的定义创建了Hello.prototype,唯一的区别就是崛起。我有什么遗失的吗?

编辑:在this question中,有人指出使用函数表达式版本,one.constructor.name将不会被定义,我验证的是真的。另一个人指出函数表达式中新创建的对象的__proto__指向Object.prototype,但我无法在Chrome中验证这一点。对于早期版本的IE等,它可能是正确的吗?

0 个答案:

没有答案