var мир = {}; мир.строкаПути = function(п) { function вСтроку(ключ) { return `["${ключ}"]`; } return "мир" + п.map(вСтроку).join("") + " = "; }; мир.создатьПуть = function(путь) { var уровень = мир; var длина = путь.length; for (var i = 0; i < длина; ++i) { var п = путь[i]; if (!уровень[п]) { уровень[п] = {}; } else { уровень = уровень[п]; } } }; мир.разобрать = function(словарь, путь = []) { for (ключ in словарь) { var внутреннийПуть = путь.slice(); внутреннийПуть.push(ключ); var значение = словарь[ключ]; мир.создатьПуть(внутреннийПуть); if (typeof значение === "string") { // Функция. if (значение.startsWith("function")) { var содержимое = мир.строкаПути(внутреннийПуть) + значение; eval(содержимое); } // Строка. else { var содержимое = мир.строкаПути(внутреннийПуть) + '"' + значение + '"'; eval(содержимое); } } /* // Массив. else if (Array.isArray(значение)) { console.debug("разобрать массив"); } */ // Словарь. else if (значение === Object(значение)) { мир.разобрать(значение, внутреннийПуть); } // Неизвестное. else { console.error("неизвестная пара ключ/значение", ключ, значение); } } };