ECMAScript中的对象属性常量?

Tow*_*wer 3 javascript const constants ecmascript-harmony

我已经看到了ECMAScript Harmony的一些提议,能够用关键字指定常量const.但是,它似乎只在块范围内可用(即FunctionBodyProgram).有没有办法将常量定义为对象属性(想象myObj.STATUS_OK)?

我猜建议的方法是使用propertiesvia Object.definePropert(y/ies),但这似乎不太方便,现在是吗?

dav*_*vin 6

它似乎const与环境框架绑定更相关,因此与对象和属性略有不同.

也就是说,在全局变量上,它正是它所做的:

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

如果你正在寻找速记,那么你可以制作一个非常简单的宏.

在您的情况下,另一种方法是获得一个get-only值:

var myObj = {
   get STATUS_OK(){ return 42; }
};
Run Code Online (Sandbox Code Playgroud)