JavaScript - 尝试从原型(prototype)中添加原型(prototype)

标签 javascript html oop prototype subclass

这听起来比它应该的更容易,但我在尝试解决这个问题时遇到了问题。我的情况基本上是,我可以创建一个将使用原型(prototype)的类(例如:function exClass() {})。

如果我想添加到类中,我可以使用:exClass.prototype.newMethod() = '';

那么为什么如果我在原型(prototype)“newMethod”中,我就不能再向“exClass”添加新原型(prototype)了。我的意思的一个例子是:this.prototype.test_var1 = '' - 它失败了,exClass.test_var1 也是如此。

为什么我无法从其子类之一向该类添加更多内容?

最佳答案

对象的原型(prototype)不是对象上名为prototype 的属性。函数上的原型(prototype)字段是将成为使用该函数创建的对象原型(prototype)的对象。对象可以通过 constructor 函数访问创建它的函数的原型(prototype)。例如,this.constructor.prototype.test_var1 = '' 在大多数情况下都有效。

我说在大多数情况下,因为许多 JavaScript 引擎都有一个内置的 __proto__,它是对象的原型(prototype),可以动态修改,但例如 IE 不支持。

在 ES5 中,您可以使用 Object.getPrototypeOf() 可靠地获取原型(prototype)。因此,例如,您可以在 ES5 中说 Object.getPrototypeOf(this).test_var1 = '' 这将在现代浏览器中工作,但在不支持 ES5 的浏览器中不工作。

关于JavaScript - 尝试从原型(prototype)中添加原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689412/

相关文章:

c# - 使用javascript从html文本框中获取值

javascript - 在 Vite2 中,如何在 tailwind.config.js 中导入 ESModule

php - 是否应该在服务器端使用 XML,而在客户端使用 JSON?

javascript - 居中图像后标题不起作用

javascript - 当宽度为 100% 时 slider 无法正常工作

javascript - 发生页面溢出时调整子菜单的大小

html - CSS 断字 : break-all doesn't break URLs?

php - WP_Query() 在自定义类中不起作用

javascript - 如果 Javascript 的原生 OOP 是无类的,那么构造函数呢?这不是意味着一个类吗?

c++ - "Not declared in scope"C++ 问题