javascript原型属性

时间:2016-02-15 09:53:51

标签: javascript prototype

我对原型有一个简短的问题。

具有Square函数原型的对象继承了Rectangle函数的原型,但当然并非所有矩形都是正方形。假设Rectangle的实例有自己的已将属性widthheight更改为方形,此实例如何继承Square 原型当它实际上是一个正方形?另外,给定一个Square实例,如果Square原型不再是正方形,它怎么会丢失?

1 个答案:

答案 0 :(得分:2)

它不能。继承并不像那样。

一般来说,如果你创建一个从Rectangle继承的Square,那么它会覆盖设置高度和宽度的函数,这样设置一个就可以设置另一个而且它永远不会是一个正方形以外的任何东西(和具有相等边的矩形将是重合的正方形,而不是代码中的。)

如果你想要一个有时在高度和宽度相同的情况下表现不同的对象,那么在重要的函数中加上像if (this.height === this.width)这样的测试。