3

キーワードで定数を指定できるという点で、ECMAScriptHarmonyの提案を見てきましたconst。ただし、ブロックスコープ(つまり、FunctionBodyおよびProgram)でのみ使用できるようです。定数をオブジェクトプロパティとして定義する方法はありますか(想像してくださいmyObj.STATUS_OK)?

properties提案された方法は経由で使用することだと思いますObject.definePropert(y/ies)が、それはあまり便利ではないようですが、今はそうですか?

4

2 に答える 2

6

これはconst環境フレーム バインディングに関連しているようで、オブジェクトやプロパティとは少し異なります。

つまり、グローバルでは、まさにそれが何をするかです:

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

省略形を探している場合は、非常に単純なマクロを作成できます。

あなたの場合、別の方法は取得専用の値を持つことです:

var myObj = {
   get STATUS_OK(){ return 42; }
};
于 2011-05-07T15:50:42.637 に答える
1

ただのアイデア。

それらを次のように宣言します。

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

Object.seal(CONST);

そして、それらを次のように使用します。

   CONST.ONE, CONST.TWO 
于 2011-05-08T05:32:02.357 に答える