我对原型有一个简短的问题。
具有Square
函数原型的对象继承了Rectangle
函数的原型,但当然并非所有矩形都是正方形。假设Rectangle
的实例有自己的已将属性width
和height
更改为方形,此实例如何继承Square
原型当它实际上是一个正方形?另外,给定一个Square
实例,如果Square
原型不再是正方形,它怎么会丢失?
答案 0 :(得分:2)
它不能。继承并不像那样。
一般来说,如果你创建一个从Rectangle继承的Square,那么它会覆盖设置高度和宽度的函数,这样设置一个就可以设置另一个而且它永远不会是一个正方形以外的任何东西(和具有相等边的矩形将是重合的正方形,而不是代码中的。)
如果你想要一个有时在高度和宽度相同的情况下表现不同的对象,那么在重要的函数中加上像if (this.height === this.width)
这样的测试。