我在一个基于javascript的网站上工作,有多种语言设置。语言存储在外部文件中,app.en.js
和app.de.js
。这两个都定义了lang
对象:
lang = {
introText0 : 'Lorem',
introText1 : 'Ipsum',
introText2 : 'Dolor'
}
现在我有一个负责更改语言的功能:
function changeLanguage(language) {
delete lang;
if(language === 1) { $.getScript('app.en.js'); }
if(language === 2) { $.getScript('app.de.js'); }
}
到目前为止一切顺利。这在理论上有效。整个应用程序都引用了lang
对象,替换了每个文本。引用的每个文本都会通过此更改进行更新,但是,有些数组也会引用这些更改,并且它们无法正确更新。
var upgradeItems = new Array();
upgradeItems[0] = new Array(lang.upgradeItem0, 13, 5, true);
我认为Java的垃圾收集实际上只删除了Object的未推荐属性,并且由于这些属性在changeLanguage()
发生之前被引用,因此它们会保留在应用程序中。我如何解决这个问题并“刷新”这些数组?