5

JSオブジェクトの定数のデフォルト値を定義し、同じ名前空間の次の宣言でそれを参照したいと思います。

var Foo = {
  // 'constant' value for default key 
  DEFAULT_KEY : "COOKIE_MONSTER",

  // a map declaration that should ideally reference the default key 
  key_map : {
    a : Foo.DEFAULT_KEY, 
    b : Foo.DEFAULT_KEY
  }
};

FooFoo.key_mapの前に定義されFoo.DEFAULT_KEYないので、本物ではありません。
これらのオブジェクト定数を設定/使用する適切な方法は何ですか?

4

2 に答える 2

2

私の頭に浮かぶ最初のパターン:

var Foo = (function() {
    var DEFAULT_KEY = "COOKIE_MONSTER";
    return {
        DEFAULT_KEY: DEFAULT_KEY,
        key_map: {
            a: DEFAULT_KEY,
            b: DEFAULT_KEY
        }
    }
})();
于 2013-02-25T20:38:05.907 に答える
1

iifeを使用して、目的のオブジェクト(名前空間)を返すことができます。

var Foo = (function(){
    var namespace = {};

    namespace.DEFAULT_KEY = 'COOKIE_MONSTER';

    namaespace.key_map = {
        a : namespace.DEFAULT_KEY, 
        b : namespace.DEFAULT_KEY
    };

    return namespace; 
})();
于 2013-02-25T20:37:47.790 に答える