2016-09-25 65 views

回答

3

在其[[Extensible]] internal slot,它不能直接从您的代码访问(但当然,可通过Object.isExtensibleReflect.isExtensible访问)。

从链接:

每个普通对象具有控制性能是否可以被添加到所述对象的布尔值[[扩展]]内部槽。如果[[Extensible]]内部插槽的值为false则可能不会将其他属性添加到该对象。另外,如果[[Extensible]]为false对象的[[Prototype]]内部插槽的值可能不会被修改。一旦对象的[[Extensible]]内部插槽的值已设置为false后面可能不会更改为true

内部插槽有点像属性,但不是继承的,不能从程序代码中直接访问(直接)。从Object Internal Methods and Internal Slots

内部插槽对应于与对象关联并由各种ECMAScript规范算法使用的内部状态。内部插槽不是对象属性,它们不会被继承。根据具体的内部插槽规范,此类状态可能由任何ECMAScript语言类型或特定ECMAScript规范类型值的值组成。除非另外明确指定,否则内部插槽将作为创建对象的过程的一部分进行分配,并且可能不会动态添加到对象中。除非另有规定,否则内部插槽的初始值是未定义的值。本规范中的各种算法创建具有内部插槽的对象。但是,ECMAScript语言不提供将内部插槽与对象关联的直接方式。