我知道每个 JavaScript 对象都有一个名为的内部属性[[Prototype]]
。一些实现允许通过名为的属性访问它__proto__
而其他则不然。有什么特殊意义吗brackets该物业周围?
它是一个 ”内部财产” 对象的。来自ECMAScript 8.6.2:
该规范使用各种内部属性来定义对象值的语义。这些内部属性不是 ECMAScript 语言的一部分。本规范定义它们纯粹是为了说明目的。 ECMAScript 的实现必须表现得就像它以此处描述的方式生成和操作内部属性一样。内部属性的名称括在双方括号 [[ ]] 中。
“这些内部属性不是 ECMAScript 语言的一部分”这句话意味着内部属性不是可以在实际代码中使用的标识符——内部属性不能作为包含它们的对象的成员进行访问。然而,他们may be made可通过特定功能或属性访问(例如,某些浏览器足够好让您设置和获取[[Prototype]]
通过__proto__
属性,并且 ES5 规范允许通过以下方式进行只读访问Object.getPrototypeOf
).
使用双括号而不是单括号可能是为了避免与实际的混淆。括号表示法(即财产访问权)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)