JavaScript 原型(prototype)属性

标签 javascript prototype

我有一个关于原型(prototype)的简短问题。

具有 Square 函数原型(prototype)的对象会继承 Rectangle 函数的原型(prototype),但当然并非所有矩形都是正方形。假设有一个 实例>Rectangle本身的属性widthheight改变了,变成了正方形,这个实例如何继承Square 原型(prototype)实际上是正方形吗?另外,给定一个 Square 实例,当它不再是一个正方形时,它怎么会失去 Square 原型(prototype)呢?

最佳答案

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

一般来说,如果您要创建一个继承自矩形的正方形,那么它将覆盖设置高度和宽度的函数,这样设置一个就会设置另一个,并且它永远不会是正方形以外的任何东西(并且边长相等的矩形碰巧是正方形,而不是在代码中)。

如果你想要一个对象,如果高度和宽度相同,有时它的行为会有所不同,那么可以在函数中进行类似 if (this.height === this.width) 的测试,其中这很重要。

关于JavaScript 原型(prototype)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35406177/

相关文章:

Javascript (jQuery) 错误 : SyntaxError: missing ) after argument list

javascript - JSONP函数调用问题

javascript - 使用原型(prototype)模式在ajax回调中访问 'this'

java - 一种在 Spring 应用程序中创建和销毁 Prototype-beans 期间跟踪内存情况的方法?

javascript - JavaScript 中的继承 : child object still calling its parent method

php - 如何将字符串中的值连接到变量中的值?

javascript - 如何在 cordova/ionic 应用程序中放置 Google Plus +1 按钮?

javascript - 防止 Firefox 在 `.exitFullscreen()` 之后移动

javascript - 从 Object.create 获取键

javascript - 通过 this.x 访问相同的原型(prototype)变量 'x' 会创建一个单独的副本吗?