我已经看到了ECMAScript Harmony的一些提案,可以用关键字const
指定常量。但是,它似乎只在区域范围内可用(即,FunctionBody
和Program
)。有没有办法将常量定义为对象属性(想象一下myObj.STATUS_OK
)?ECMAScript中的对象属性常量?
我想建议的方法是使用properties
通过Object.definePropert(y/ies)
,但这似乎不是很方便,现在呢?
我已经看到了ECMAScript Harmony的一些提案,可以用关键字const
指定常量。但是,它似乎只在区域范围内可用(即,FunctionBody
和Program
)。有没有办法将常量定义为对象属性(想象一下myObj.STATUS_OK
)?ECMAScript中的对象属性常量?
我想建议的方法是使用properties
通过Object.definePropert(y/ies)
,但这似乎不是很方便,现在呢?
const
似乎更多地与环境框架绑定相关,因此与对象和属性稍有不同。
这就是说,在全局这也正是它的作用:
const a = 10;
Object.getOwnPropertyDescriptor(window, "a");
/*
Object:
configurable: true,
enumerable: true
value: 10
writable: false
*/
如果你正在寻找的简写,那么你可以做一个非常简单的宏。
在你的情况,另一种办法是有一个get-只值:
var myObj = {
get STATUS_OK(){ return 42; }
};
只是一个想法。
声明为:
var CONST =
{
ONE: 1,
TWO: 2
};
Object.seal(CONST);
,并用它们为:
CONST.ONE, CONST.TWO