ECMAScript中定义的内部属性是什么?

Pro*_*was 10 javascript ecmascript-5

ECMAScript中的内部属性定义了什么?规范是什么意思

此规范使用各种内部属性来定义对象值的语义.这些内部属性不是ECMAScript语言的一部分.它们仅由出于说明目的而由本规范定义.

这是否意味着ECMAScript定义的内部属性不可用于编程.它们用于实现javascript引擎

seo*_*joo 9

内部属性定义代码执行时的行为,但不能通过代码访问.ECMAScript为JavaScript中的对象定义了许多内部属性.内部属性由双平方括号表示.

例如,JavaScript函数是一个对象,它具有[[call]]属性.[[call]]属性是函数的唯一属性.

另一个内部属性示例是[[prototype]]属性.此属性是指向实例正在使用的原型对象的指针.由于无法通过代码访问内部属性,因此对象实例化无法访问原型,而其属性对对象都可用.您可以通过对对象使用Object.getPrototypeOf()方法获取[[prototype]]属性的值.

var obj = new Object();
var prototype = Object.getPrototypeOf(obj);
console.log(prototype == Object.prototype);
Run Code Online (Sandbox Code Playgroud)


Ber*_*rgi 5

这是否意味着 ECMAScript 定义的内部属性不可用于编程。它们用于 javascript 引擎的实现?

是的。它们仅用于实现目的,不需要“实名”。您可以在#8.6.2 对象内部属性和方法中阅读相关内容。


Que*_*tin 0

它们用于如何实现 JavaScript 引擎的示例中。