javascript原型属性

javascript原型属性,javascript,prototype,Javascript,Prototype,我有一个关于原型的简短问题 具有正方形函数原型的对象继承了矩形函数原型,但当然并非所有矩形都是正方形。假设矩形的一个实例有其自己的属性宽度和高度更改,使其成为正方形,此实例如何继承Square 当它实际上是一个正方形的时候?另外,给定一个Square实例,当它不再是一个正方形时,它怎么会失去Square原型呢。继承不是这样工作的 通常,如果要创建一个从矩形继承的正方形,那么它将覆盖设置高度和宽度的函数,以便设置一个将设置另一个,并且它不能是正方形以外的任何东西(等边的矩形将是巧合的正方形,而不是

我有一个关于原型的简短问题

具有
正方形
函数原型的对象继承了
矩形
函数原型,但当然并非所有矩形都是正方形。假设
矩形
的一个实例有其自己的属性
宽度
高度
更改,使其成为正方形,此实例如何继承
Square

当它实际上是一个正方形的时候?另外,给定一个
Square
实例,当它不再是一个正方形时,它怎么会失去
Square
原型呢。继承不是这样工作的

通常,如果要创建一个从矩形继承的正方形,那么它将覆盖设置高度和宽度的函数,以便设置一个将设置另一个,并且它不能是正方形以外的任何东西(等边的矩形将是巧合的正方形,而不是代码中的正方形)


如果您想要一个对象,如果高度和宽度相同,它的行为有时会不同,那么在重要的函数中放置一个类似于
If(this.height==this.width)
的测试。

它不能。继承不是这样工作的

通常,如果要创建一个从矩形继承的正方形,那么它将覆盖设置高度和宽度的函数,以便设置一个将设置另一个,并且它不能是正方形以外的任何东西(等边的矩形将是巧合的正方形,而不是代码中的正方形)


如果你想让一个对象在高度和宽度相同的情况下有时会表现出不同的行为,那么在重要的函数中做一个测试,比如
If(this.height==this.width)

对象不会像这样“丢失”原型(“标准”OO继承也不会这样工作)。实际上,你的问题是,你可以考虑在WITH()和Head()方法中投一个错误,以确保根据形状标准正确地设置值。对象不会像这样丢失“原型”(并且“标准”OO继承也不起作用)。您的问题是,我可以考虑在WITH()和Head()方法中抛出一个错误,以确保根据形状标准正确设置值。