如何在对象中引用JavaScript对象键?

时间:2013-03-12 01:13:40

标签: javascript

如何在对象本身内引用JavaScript哈希键?例如,我希望能够实际使用"主题"键。我会使用"这个"参考"主题"?

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

4 个答案:

答案 0 :(得分:6)

您可以使用方法:

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

当然,您必须通过EXAMPLE.config.image_path()

访问它

您可能不应该在window上定义内容,只使用当前范围。

答案 1 :(得分:3)

唯一的方法是使用函数:

e.g。

windows.EXAMPLE {
  config : {
    theme: 'blah', 
    image_path: function () { return '/path/to' + this.theme } 
  } 
} 

答案 2 :(得分:2)

不使用函数,您必须将其拆分为两个单独的赋值:

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

答案 3 :(得分:1)

当构造一个对象时(不是像Kyle的例子那样创建它),我认为不可能访问对象的属性,因为它还没有“存在”,除非你使用函数或一些花哨的东西

我也认为没有理由这样做,因为您可以在"example"值中输入image_path,或者您可以在定义之前创建变量以充当“配置” “常数:

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