Константы свойств объекта в ECMAScript? - PullRequest
3 голосов
/ 07 мая 2011

Я видел несколько предложений для ECMAScript Harmony с точки зрения возможности указывать константы с ключевым словом const.Тем не менее, он, кажется, доступен только в блочных областях (т. Е. FunctionBody и Program).Есть ли способ определить константы как свойство объекта (представьте myObj.STATUS_OK)?

Я предполагаю, что предложенный способ - использовать properties через Object.definePropert(y/ies), но это не кажется очень удобным, сейчасэто?

Ответы [ 2 ]

6 голосов
/ 07 мая 2011

Похоже, что const больше связано с привязками кадров среды и, таким образом, немного отличается от объектов и свойств.

Тем не менее, для глобалов это именно то, что он делает:

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

Если вы ищете сокращение, тогда вы можете сделать довольно простой макрос.

В вашем случае альтернативой будет иметь значение только для получения:

var myObj = {
   get STATUS_OK(){ return 42; }
};
1 голос
/ 08 мая 2011

Просто идея.

Объявите их как:

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

Object.seal(CONST);

И используйте их как:

   CONST.ONE, CONST.TWO 
...