4

オブジェクト自体で JavaScript ハッシュ キーを参照するにはどうすればよいですか? たとえば、「テーマ」キーを実際に利用できるようにしたいと考えています。「テーマ」を参照するために「これ」を使用しますか?

window.EXAMPLE = {
config : {
    theme: 'example',
    image_path: '/wp-content/themes/' + this.theme + '/img/',
}
}
4

4 に答える 4

7

次の方法を使用できます。

window.EXAMPLE = {
    config : {
        theme: 'example',
        image_path: function () {
            return '/wp-content/themes/' + this.theme + '/img/';
        },
    }
}

もちろん、次の方法でアクセスする必要がありますEXAMPLE.config.image_path()

おそらく、どちらにも何かを定義するべきではなくwindow、現在のスコープが何であれ、そのまま使用するべきです。

于 2013-03-12T01:19:36.157 に答える
3

これを行う唯一の方法は、関数を使用することです。

例えば

windows.EXAMPLE {
  config : {
    theme: 'blah', 
    image_path: function () { return '/path/to' + this.theme } 
  } 
} 
于 2013-03-12T01:19:34.447 に答える
2

関数を使用しない場合は、関数を 2 つの別々の割り当てに分割する必要があります。

window.EXAMPLE = {
    config : {
        theme: 'example'
    }
};
window.EXAMPLE.config.image_path = '/wp-content/themes/' + window.EXAMPLE.config.theme + '/img/';
于 2013-03-12T01:23:30.453 に答える
1

オブジェクトを構築するとき (Kyle の例が示すように、オブジェクトが作成された後ではありません)、オブジェクトのプロパティにアクセスすることはできないと思います。オブジェクトはまだ「存在」していないためです。

"example"とにかく値を入力するかimage_path、定義の前に変数を作成して「構成」定数として機能させることができるため、これを行う理由もわかりません。

var CONF_THEME = 'example';
window.EXAMPLE = {
    config : {
        theme: CONF_THEME,
        image_path: '/wp-content/themes/' + CONF_THEME + '/img/'
    }
}
于 2013-03-12T01:21:28.093 に答える