Получить имя объекта
Можно ли как-то получить имя объекта?
К примеру, есть объект obj { A: 1, B: 2, } Нужно получить его имя в виде строки, то есть "obj" и записать его в переменную |
Цитата:
И знать кто его родитель. Иначе как его искать? Цитата:
var obj={ A: 1, B: 2, } let name='obj'; alert(JSON.stringify(window[name])); |
Мне нужно получить не содержимое, а имя объекта.
Ситуация такая: делаю игру с инвентарем. Сначала создаю все передметы в виде объектов и добавляю их в объект "предметы". Далее создаю массив "инвентарь", куда потом добавляются найденные предметы. Чтобы сохранить игру, помещаю все нужные переменные, объекты и массивы в один объект, преобразую его в JSON и записываю в файл. При загрузке игры, сохраненный JSON преобразую обратно в объект. Но проблема в том, что у предметов в свойствах присутствуют функции для использования их в игре. А функции не сохраняются в JSON. Поэтому при загрузке игры, предметы невозможно использовать, так как они загружаются без функций. Можно решить эту проблему, просто обновив инвентарь после загрузки игры. for(var i=1, i<инвентарь.length; i++){ if (инвентарь[i] !== null){ инвентарь[i] = предметы[инвентарь[i]]; } } Но проблема в том, что "инвентарь[i]" (содержимое: инвентарь[нож]) является объектом, поэтому такая запись добавляет в инвентарь null. Если как-то преобразовать "инвентарь[i]" в строку, то все будет работать как нужно. |
|
Да, я это уже понял, когда столкнулся с такой проблемой. Просто не особо хочется все переделывать)
|
SIZZZ, ты пишешь много букаф, но не делаешь тестовых примеров... :nono:
|
Цитата:
В моем примере это показано... |
Записываемый объект содержит в себе функции, а они не записываются
|
SIZZZ, вместо того чтобы нас стращать новыми "вводными", сделал бы тестовый пример... Описал, что из этого хотел бы получить...
И на этом примере можно было бы что-то показать... |
Часовой пояс GMT +3, время: 07:12. |