什么是内部属性在ECMAScript中定义的呢? 什么是规范的意思
本说明书中使用的各种内部属性来定义对象values.These内部属性的语义不ECMAScript语言的一部分。 他们本规范纯粹是为了说明的目的定义。
这是否意味着由ECMAScript中定义的内部属性不适用于编程。 它们在JavaScript引擎的实现中使用 ?
什么是内部属性在ECMAScript中定义的呢? 什么是规范的意思
本说明书中使用的各种内部属性来定义对象values.These内部属性的语义不ECMAScript语言的一部分。 他们本规范纯粹是为了说明的目的定义。
这是否意味着由ECMAScript中定义的内部属性不适用于编程。 它们在JavaScript引擎的实现中使用 ?
内部属性定义的代码的行为,因为它会执行,但无法通过代码访问。 ECMAScript中定义了JavaScript对象的许多内部属性。 内部性质由双方括号标记表示。
例如,JavaScript函数是一个对象,它已[[调用]]属性。 [致电]]属性是独特的功能。
另一个内部属性的例子是[[原型]]属性。 此属性是指回该实例使用原型对象的指针。 由于内部属性不能通过代码访问的,而其性质是可用的所有对象的对象实例化不能访问到的原型。 可以通过使用Object.getPrototypeOf()方法在物体上获得[[原型]]属性的值。
var obj = new Object();
var prototype = Object.getPrototypeOf(obj);
console.log(prototype == Object.prototype);
这是否意味着由ECMAScript中定义的内部属性不适用于编程。 它们在JavaScript引擎的实现中使用?
是。 他们只是执行的目的,并且不需要“实名制”。 你可以读到,在#8.6.2对象的内部属性和方法 。
经常使用的例子是内部属性[[原型],所有对象都有一个,但你不能直接访问它如。
function foo(){
this.first = "hi"
this.second = something
}
foo.prototype = {
constructor : foo,
anotherProp : "hello"
}
var obj = new foo();
console.log(obj.anotherProp); //hello
//here the runtime will look in obj for anotherProp and
//fail to find it so it will look in obj's internal property
//[[prototype]] which is pointing to the object foo.prototype
这样你就可以访问该内部属性[[原型]]的,但不直接通过内部[[原型]]属性是只为运行时使用,不是程序员指向的对象。
他们在如何实现一个JavaScript引擎的例子中使用。