Если вы просто хотите загрузить параметры, вам все равно понадобится некоторая структура в вашем files
объекте со списком paramsToSave
.Это будет служить схемой свойств, которые могут быть сериализованы.Вам не нужно указывать для них начальные значения, но вам нужно указать их пути хранения.
После этого вам, вероятно, захочется обмениваться информацией между структурой paramsToSave и действительными глобальными объектами.
Если вы хотите это сделать, то, вероятно, вы просто хотите написать методы получения и установки для свойств paramsToSave.
var game = { pageID: 'abc123', page: { sceneID: 'sce234' } }; // example
var Events = { placeholder: 'This is the events object' }; // example
var time = { hours: 1, minutes: 2, daysPlayed: 3 }; // example
let mock_localStorage = {}; // mock
var files = {
paramsToSave: {
get game_pageID() { return game.pageID; },
set game_pageID(value) { game.pageID = value; },
get game_page_sceneID() { return game.page.sceneID; },
set game_page_sceneID(value) { game.page.sceneID = value; },
get events() { return Events; },
set events(value) { Events = value; },
get time_hours() { return time.hours; },
set time_hours(value) { time.hours = value; },
get time_minutes() { return time.minutes; },
set time_minutes(value) { time.minutes = value; },
get time_daysPlayed() { return time.daysPlayed; },
set time_daysPlayed(value) { time.daysPlayed = value; }
},
save() {
for (let param in this.paramsToSave) {
mock_localStorage[`save_${param}`] = JSON.stringify(this.paramsToSave[param]);
}
},
load() {
for (let param in this.paramsToSave) {
this.paramsToSave[param] = JSON.parse(mock_localStorage[`save_${param}`]);
}
}
};
files.save();
console.log(mock_localStorage);
// Simulate changing something in localStorage
mock_localStorage[`save_${'time_daysPlayed'}`] = '365';
files.load();
console.log(JSON.stringify(time, null, 2));