我在读一本关于面向对象的JavaScript和被困在其中一个例子。
在示例代码的第一个版本,所述的新实例Shape
创建构造函数和所述toString
方法被调用。 该toString
方法返回一个“三角”,这是name
的财产Triangle
雏形,尽管“形状”应该是name
的物业Shape
雏形。
在示例代码的第二版本,所述toString
方法返回“形状”如预期。 我想知道在代码的第二个版本的变化是如何做出的任何区别,因为它似乎是在示例代码的两个版本中, Triangle
原型持有到一个参考Shape
样机,因此name
中的财产Shape
样机将仍然是更新为“三角”,因为Triangle.prototype.name = "Triangle";
第一个版本: 的jsfiddle
第二个版本: 的jsfiddle