我看到了两种不同的模式和解释。一个来自 DailyJS 和许多其他: Rectangle.prototype = new Shape();
然后是 Crockford's here,这意味着 Rectangle.prototype = Shape;
现在从理论上讲,为什么需要运行“新”?它运行构造函数,是的。它还将矩形的原型分配给形状的原型。但是我们应该能够通过简单地将父代分配到原型中来进行继承。
我想知道原因是否是原型链接。看来,在案例 1 中,它将创建一个原型链。这意味着, Rectangle 原型将具有 Shape原型。在第二种情况下,矩形的原型将只有 Shape 的方法——但没有 Shape 的原型方法。
那正确吗?非常感谢您的任何想法。