我已經看到了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