对短语的混淆 "extend Object.prototype or one of the other build-in prototype"

confusion over the phrase "extend Object.prototype or one of the other build-in prototype"

目前正在研究javascript原型和继承,在MDN

上遇到了以下几段

我不太清楚作者所说的 extend Object.prototype or one of the other build-in prototype 是什么意思。有人可以澄清这个概念,最好是用代码示例吗?谢谢

除了Object,还有ArrayFunction等也有原型。出于 MDN 中提到的原因,扩展这些原型也被认为是不好的做法。

术语“内置原型”是指标准对象继承的原型对象。这包括语言指定的 Boolean.prototypeNumber.prototypeString.prototypeSymbol.prototypeObject.prototypeArray.prototypeFunction.prototypeDate.prototype,以及各种 Error 的原型对象、类型数组、数据结构((弱)Map、Set)和迭代器。

它还包含环境中的其他本机原型对象,例如 DOM(Node.prototypeElement.prototypeDocument.prototype、...)和其他 Web API (例如 XMLHttpRequest.prototype).

参见 ES6 中的 definition of built-in objects and the whole section about standard built-in objects

一般来说,你不应该惹他们。它们是由环境提供的,它们不是你的——不要碰它们并在它们上面创建你自己的方法。如果你想编写模块化的、可互操作的代码,你不应该依赖于自定义的、全局的内置修改。另请参阅 Why is extending native objects a bad practice? 了解更多讨论。