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