可以在javascript(ECMAScript 5)中使用对象文字符号指定其他描述符属性吗?
我已经看到,可以使用对象文字符号来定义具有getter的对象,如下所示:可以在javascript(ECMAScript 5)中使用对象文字符号指定其他描述符属性吗?,javascript,json,Javascript,Json,我已经看到,可以使用对象文字符号来定义具有getter的对象,如下所示: var foo = { get bar() { return 3; } } 是否有一些对象文字语法允许我设置上面“bar”的其他属性描述符属性,例如“enumerable” 或者,“get/set”是ECMAScript 5对象文字符号支持的唯一属性描述符属性吗?您可能还想使用的唯一东西是setter语法,但您可能已经知道了这一点 有些浏览器支持一个\uuuuu proto\u
var foo = {
get bar() { return 3; }
}
是否有一些对象文字语法允许我设置上面“bar”的其他属性描述符属性,例如“enumerable”
或者,“get/set”是ECMAScript 5对象文字符号支持的唯一属性描述符属性吗?您可能还想使用的唯一东西是setter语法,但您可能已经知道了这一点 有些浏览器支持一个
\uuuuu proto\uuuu
属性,允许您设置一个对象原型,但它没有指定,可能每天都会被删除
将其用作常规属性名称:
var foo = {
__proto__: bar
};
这是个好问题……但我认为这是办不到的
get
和set
定义为与以下操作相同的运算符:
查看javascript,除了get和set之外,我没有看到其他描述符有任何类似之处。不,您必须使用
Object.defineProperty
我是这么说的:
ObjectLiteral:
{ }
{ PropertyNameAndValueList }
{ PropertyNameAndValueList , }
PropertyAssignment
PropertyNameAndValueList , PropertyAssignment
PropertyName : AssignmentExpression
get PropertyName() { FunctionBody }
set PropertyName( PropertySetParameterList ) { FunctionBody }
属性名称和值列表:
{ }
{ PropertyNameAndValueList }
{ PropertyNameAndValueList , }
PropertyAssignment
PropertyNameAndValueList , PropertyAssignment
PropertyName : AssignmentExpression
get PropertyName() { FunctionBody }
set PropertyName( PropertySetParameterList ) { FunctionBody }
属性签名:
{ }
{ PropertyNameAndValueList }
{ PropertyNameAndValueList , }
PropertyAssignment
PropertyNameAndValueList , PropertyAssignment
PropertyName : AssignmentExpression
get PropertyName() { FunctionBody }
set PropertyName( PropertySetParameterList ) { FunctionBody }