为什么添加原型(prototype)后构造函数从Foo变成了Object?我怎样才能访问原始构造函数?
代码:
function Foo() {}
var foo1 = new Foo();
console.log('foo1: ' + foo1.constructor);
Foo.prototype = {}
var foo2 = new Foo();
console.log('foo2: ' + foo2.constructor);
输出:
foo1: function Foo() {}
foo2: function Object() {
[native code]
}
最佳答案
发生这种情况是因为您为 Foo 的原型(prototype)提供了一个全新的对象,而您没有设置该对象的“构造函数”属性。
Foo.prototype = { constructor: Foo };
实例化的函数对象为其“原型(prototype)”属性获取一个对象,该对象已经以这种方式初始化。
关于javascript - 为什么构造函数改变了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826535/