Chrome控制台对象属性显示为角度和方括号

Phi*_*ert 8 javascript google-chrome ecmascript-5

在Chrome控制台中列出对象的属性时,我偶然发现了以前从未见过的符号.实际上,一些属性被概述了<angle-brackets-properties>[[double-square-brackets-properties]]符号.任何人都可以了解一下:

  • 这些符号的用途是什么
  • 在这些属性的行为/修饰符方面有什么含义(可枚举,可写,可配置等)
  • 这是否可以通过纯Javascript操作重现,或者是否只能通过本机C++对象实现
  • 何时引入(ECMAScript规范)

您将在下面找到一个示例: 在此输入图像描述

小智 6

您所问的大部分问题都可以在这里得到解答。就像这个答案一样,我将继续引用规范:

本规范定义它们纯粹是为了说明目的。ECMAScript 的实现必须表现得好像它以此处描述的方式生成和操作内部属性。内部属性的名称括在双方括号 [[ ]] 中。当算法使用对象的内部属性并且该对象未实现指定的内部属性时,将引发 TypeError 异常。