我目前正在研究javascript原型(prototype)和继承,在MDN上遇到过以下段落
我不太确定作者所说的extend Object.prototype 或其他内置原型(prototype)之一
是什么意思。有人可以澄清这个概念,最好用代码示例吗?谢谢
最佳答案
术语“内置原型(prototype)”指的是标准对象继承的原型(prototype)对象。这包括语言指定的 Boolean.prototype
、Number.prototype
、String.prototype
、Symbol.prototype
、 Object.prototype
、Array.prototype
、Function.prototype
、Date.prototype
以及原型(prototype)对象各种错误、类型化数组、数据结构((弱)Map、Set)和迭代器。
它还包含环境中的其他 native 原型(prototype)对象,例如 DOM(Node.prototype
、Element.prototype
、Document.prototype
>、...)和其他 Web API(例如 XMLHttpRequest.prototype
)。
请参阅definition of built-in objects和 whole section about standard built-in objects在 ES6 中。
一般来说,你不应该惹恼它们。它们是由环境提供的,不是你的——不要碰它们并在它们上创建你自己的方法。如果您想编写模块化、可互操作的代码,则不应依赖内置函数的自定义全局修改。另请参阅Why is extending native objects a bad practice?进行更多讨论。
关于javascript - 对短语 "extend Object.prototype or one of the other build-in prototype"的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940348/