我正在阅读一本关于 OOP javascript 的书,但遇到了其中一个示例。
在示例代码的第一个版本中,创建了Shape构造函数的新实例并toString调用了该方法。该toString方法返回原型的属性“三角形” name,Triangle即使“形状”应该是原型的name属性Shape。
在示例代码的第二个版本中,该toString方法按预期返回“Shape”。我想知道代码的第二个版本中的更改有何不同,因为在示例代码的两个版本中,Triangle原型都包含对原型的引用,因此Shape原型的name属性Shape仍将更新为“三角形“ 因为Triangle.prototype.name = "Triangle";
第一个版本:jsfiddle
第二个版本:jsfiddle