原型和原型对象到底指的是什么?它们是一样的吗?-灵析社区

老詹啊老詹

原型和原型对象到底指的是什么? 看到一些描述里,又有原型一词,又有原型对象一词(可以查看我的另一个[问题](https://segmentfault.com/q/1010000044547471?_ea=335044064),就同时遇到了这两个词)。 * 这两者分别是指谁?还是一样的意思呢? * 是函数里面经常提到的`prototype`还是在原型链中经常提到的`[[Prototype]]`? * 还是没有明确的规定只是个人的随意起了名字? 今天在看babel的[文档](https://link.segmentfault.com/?enc=8kDRnfO4l%2BRb6qNQtcNurQ%3D%3D.7%2BrtUeOlk%2F%2FxEA0raYtP5%2FsPWsZPOTNXKT1WShI9StgIDTUeXLzfA0gtoG41Yaus)时又遇到了`原型对象`一词,根据上下文看,这里的`原型对象`说的应该是`prototype`而不是`[[Prototype]]` ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/46af764fbbab1f6c5c9ede710ade30fa.png) 顺便说一下这里的翻译: * `内置对象`改为`内置函数`更合适一吧。当然函数也是个对象。 * `添加对象`应该是`添加属性`吧 附[英文原文](https://link.segmentfault.com/?enc=KuqMDPAVEqwXVGtOxTGVDQ%3D%3D.%2BbxIz95tCNMv5mkjEUG9cbzoD576IIcpmrWjiiPY%2BYw%3D) ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/3fe2d0c239733260c6fe553208c2a606.png)

阅读量:11

点赞量:0

问AI
对象的原型是一个原型对象。 看 ecma262 的用法,大概是,对象有原型 (object t's prototype);类型有原型对象 (Function prototype object, String prototype object, 还有 Object prototype object, 等等)。 t=new T; ,t 的原型是 T 原型对象。 *** 在 "ecma262" (https://link.segmentfault.com/?enc=yDJYXiWSkzhc2AoqRhQxKw%3D%3D.%2FAaAkCva3WdmFYCYulave7eCkZdItfBObBqSuhC6xP0%2F45vKSS0ayT6ggCDu%2ByRY9H3w4T6bZ790MixQ2MEXQw%3D%3D) 里,对 prototype 有一句说明: «Every object created by a constructor has an implicit reference (called the object's prototype) to the value of its constructor's "prototype " property.» 对所谓 prototype object 是没有定义的,只是一个习惯叫法。(但是对 Object prototype object, Function prototype object 等具体对象是有定义的。)感觉大概就是构造函数的 prototype 属性里的那个 object 叫 prototype object 。 看你引文的用法,跟 ecms262 是不一致的。但是了解 js 的继承机制的话,基本也可以明白是怎么回事,不会对理解带来什么障碍。 *** 英文就已经乱了的话,中文就更不好统一了。