开发者

Object property constants in ECMAScript?

I've seen some proposals for ECMAScript Harmony in terms 开发者_JAVA技巧of being able to specify constants with the keyword const. However, it seems to be only available in block scopes (i.e., FunctionBody and Program). Is there a way to define constants as an object property (imagine myObj.STATUS_OK)?

I guess the suggested way is to use properties via Object.definePropert(y/ies), but that does not seem very convenient, now is it?


It seems that const is more related to environment frame bindings, and is thus a slightly different beast to objects and properties.

That said, on globals that's exactly what it does:

const a = 10;
Object.getOwnPropertyDescriptor(window, "a");
/*
   Object:
      configurable: true,
      enumerable: true
      value: 10
      writable: false
*/

If you're looking for shorthand then you can make a pretty simple macro.

In your case, an alternative would be to have a get-only value:

var myObj = {
   get STATUS_OK(){ return 42; }
};


Just an idea.

Declare them as:

var CONST = 
 {
   ONE: 1,
   TWO: 2
 };

Object.seal(CONST);

And use them as:

   CONST.ONE, CONST.TWO 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜