请考虑以下代码:
var oNew = Object.create(MyConstructor.prototype);
说,MyConstructor
已拥有"拥有"构造函数内定义的数据成员。 oNew
会继承这些数据成员吗? oNew
会继承所有MyConstructor.prototype
方法吗?此外,MyConstructor.prototype
本身可以继承自对象,例如new f()
。
答案 0 :(得分:1)
不,它不会;原型的说,
MyConstructor
在构造函数中定义了“自己的”数据成员。 oNew会继承那些数据成员吗?
constructor
功能是故意与原型分开的。 Object.create
的主要好处之一是它允许您将对象创建的进程与对象实例化的进程分开(使用{{1调用构造函数)确实结合了两个)。
oNew会继承所有
new
方法吗?
是的,即使使用MyConstructor.prototype
,也会继承直接分配给原型的属性。
Object.create