如何设置内置方法的属性描述符?例如isPrototypeOf?我没有在规范中找到这样的地方。相反,但没有描述属性[[Value]]。听起来像这样:
"其他所有数据属性在第18至26条中描述 附件B.2中的属性{[[Writable]]:true,[[Enumerable]]: false,[[Configurable]]:true}除非另有说明"
现在我们知道其他属性会有什么,但我们不知道[[Value]]中将设置什么值。您可以说[[Value]]中的值将设置为函数对象,您将是正确的。但是,我想通过规范知道这是设置内置属性的地方[[Value]]
答案 0 :(得分:1)
但是,我想通过规范知道这是设置内置属性的地方[[Value]]
规范没有初始化全局对象的算法步骤,这是有道理的,因为在执行任何代码实际开始之前它们应该存在。
而不是简单地说明应该存在什么结构,例如在19.2.3 Properties of the Function Prototype Object中,它只是陈述
在标题中19.2.3.1 Function.prototype.apply(thisArg,argArray)
,期望很明显它意味着apply
函数是%FunctionPrototype%
全局对象的属性。鉴于此,只有两种类型的属性,
数据属性是包含值的显式简单属性。 Function.prototype.apply
不是have get
or set
prefix或use an @@
prefix),这意味着此语句指定了数据字符串键控数据属性。根据定义,这意味着很明显[[Value]]
是函数对象本身,因为没有其他地方可以放置它,[[Value]]
是明确的正确选择。
您在17 ECMAScript Standard Built-in Objects州中链接的部分
第18至26条和附件B.2中描述的每个其他数据属性都具有{[[Writable]]:true,[[Enumerable]]:false,[[Configurable]]:true}属性,除非另有说明
只是填写其余的数据属性字段,因为为每个方法重复它们是没有意义的。