使用Object.create创建的对象是否会继承原型?

时间:2017-03-01 03:41:36

标签: javascript inheritance

请考虑以下代码:

var oNew = Object.create(MyConstructor.prototype);

说,MyConstructor已拥有"拥有"构造函数内定义的数据成员。 oNew会继承这些数据成员吗? oNew会继承所有MyConstructor.prototype方法吗?此外,MyConstructor.prototype本身可以继承自对象,例如new f()

1 个答案:

答案 0 :(得分:1)

  

说,MyConstructor在构造函数中定义了“自己的”数据成员。 oNew会继承那些数据成员吗?

不,它不会;原型的constructor功能是故意与原型分开的。 Object.create的主要好处之一是它允许您将对象创建的进程与对象实例化的进程分开(使用{{1调用构造函数)确实结合了两个)。

  

oNew会继承所有new方法吗?

是的,即使使用MyConstructor.prototype,也会继承直接分配给原型的属性。

<强>演示

Object.create