我有一个包含另一个带翻译对象的对象。它看起来像这样:
var parent = { //parent object with a bunch of stuff in it
countryAlerts:{ //area for country alerts
"USA":{ //country
en:"FAST", //alert text in English
es:"RAPIDO" //alert text in Spanish
},
"Japan":{
en:"FAST",
es:"RAPIDO"
}
}
}
我想做这样的事情:
var parent = {
countryAlerts:{
"USA":fast,
"Japan":fast
}
}
var fast = {
en:"FAST",
es:"RAPIDO"
}
我似乎无法让它工作。我想引用这样的对象:parent.countryAlerts.USA.LANGUAGE
。
感谢任何帮助。
谢谢!
答案 0 :(得分:2)
是的,您可以先定义fast
:
var fast = {
en: "FAST",
es: "RAPIDO"
};
var parent = {
countryAlerts: {
"USA" : fast,
"Japan" : fast
}
};
var lang = "en";
alert(parent.countryAlerts.USA[lang]); // "FAST"
请注意使用方括号表示法通过变量名访问对象的成员。
修改:回复评论:
啊,这太傻了。谢谢!我现在有另一个问题。假设我想快速存储在父对象中。
你的意思是,像这样(伪代码)?
var parent = {
fast : {
en : "FAST",
es : "RAPIDO"
},
countryAlerts :
"USA" : fast // ** magic here
"Japan" : fast // **
}
};
简而言之,你不能在这样的声明中做到这一点。您最好的选择是将其移至多个陈述中。
var parent = {
fast : {
en : "FAST",
es : "RAPIDO"
}
};
parent.countryAlerts = {
"USA" : parent.fast,
"Japan" : parent.fast
};
答案 1 :(得分:1)
您的后续行动:
var parent = new (function()
{
var fast = {
en: "FAST",
es: "RAPIDO"
};
this.countryAlerts = {
"USA" : fast,
"Japan" : fast
};
})();