将原型分配给Object.create原型有什么区别

时间:2016-03-03 13:59:04

标签: javascript oop object inheritance prototype

我似乎并不了解将一个构造函数原型分配给另一个构建器原型并使用Object.create之间的区别。 任何人都可以提供一个差异的例子吗?

我已经创建了这个继承示例,它为两种情况提供了相同的结果:

function MyObject() {
}

function O1() {
   MyObject.call(this);
}

O1.prototype = MyObject.prototype;

function O2() {
    MyObject.call(this);
}

O2.prototype = Object.create(MyObject.prototype);

1 个答案:

答案 0 :(得分:1)

在您的示例中,Object.create只创建一个模式(多余的)对象。如果您创建new O1new O2,其继承图将为:

enter image description here