【发布时间】:2018-11-28 17:53:19
【问题描述】:
在我的项目中,我需要访问对象属性和嵌套对象属性并将它们保存到 localStorage,并且能够单独检索它们并将当前值替换为存储的值,但我不知道如何使用(例如)for-in 循环。
保存部分运行良好,但如您所见,我对加载部分很不满意。 我曾考虑使用 window["propertyNameAsSring"] 访问该属性,但我了解到您只能通过 window 对象访问全局变量,而不能访问它们的属性。
如果您需要任何说明,请告诉我!
var files = {
paramsToSave: {
"game_pageID": game.pageID,
"game_page_sceneID": game.page.sceneID,
"events": Events,
"time_hours": time.hours,
"time_minutes": time.minutes,
"time_daysPlayed": time.daysPlayed,
},
save() {
for (param in this.paramsToSave) {
localStorage[`save_${param}`] = JSON.stringify(this.paramsToSave[param]);
}
},
load() {
// ?
// window[this.paramsToSave[param]] = JSON.parse(localStorage[`save_${param}`]);
}
};
var game = {
..
}
var time = {
..
}
var Events = {
..
}
【问题讨论】:
-
为什么不
this.paramsToSave[param] = JSON.parse(...)? -
@Jonas 因为它会保存到 "files.paramToSave["game_pageID"]" 而不是 "game" 对象中的实际 "game.pageID"
-
那么不只是
game.pageID = getStored("pageID");吗? -
因为现在我正在尝试使用 6 个变量,但我需要它来扩展很多,因此我需要类似 for 循环的东西来保存/加载所有变量..
标签: javascript loops object for-loop