使用之间是否存在一些功能差异:
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等,它可能是正确的吗?