我目前正在研究javascript原型和继承,我在MDN上遇到了以下段落
我不确定作者对extend Object.prototype or one of the other build-in prototype
的意思。有人可以澄清这个概念,最好是用代码样本吗?谢谢
答案 0 :(得分:2)
术语" 内置原型"指标准对象继承的原型对象。其中包括语言指定的Boolean.prototype
,Number.prototype
,String.prototype
,Symbol.prototype
,Object.prototype
,Array.prototype
,Function.prototype
,{{ 1}},以及各种Date.prototype
s,类型数组,数据结构((Weak-)Map,Set)和迭代器的原型对象。
它还包含环境中的其他原生原型对象,例如DOM(Error
,Node.prototype
,Element.prototype
,...)和其他Web API(例如Document.prototype
)。
请参阅ES6中的definition of built-in objects和whole section about standard built-in objects。
一般来说,你不应该搞砸他们。它们是由环境提供的,它们不是你的 - 不要触摸它们并在它们上创建自己的方法。如果要编写模块化,可互操作的代码,则不应依赖于内置函数的自定义全局修改。有关更多讨论,另请参阅Why is extending native objects a bad practice?。
答案 1 :(得分:1)
Object
以外的其他内容,例如Array
和Function
,也有原型。由于MDN上提到的原因,将这些原型扩展也被认为是不好的做法。