Если вы знаете ключи заранее, вы можете деструктурировать (только ES6):
const obj = { foo: 'foo', bar: 'bar' };
const { foo, bar } = obj;
console.log(foo);
console.log(bar);
Не рекомендуется, поскольку глобальные переменные неверны, но вы можете присвоить объекту window
и затем ссылаться на его свойства как на отдельные переменные.Это можно сделать в ES5 с полифилом:
const obj = { foo: 'foo', bar: 'bar' };
Object.assign(window, obj);
console.log(foo);
console.log(bar);
Но имена динамических переменных, как правило, плохая идея.Лучше использовать только тот объект, который у вас изначально, если это вообще возможно.
Даже менее рекомендуется, но поскольку он отвечает на вопрос, вы можете eval
(но, пожалуйста, не надо):
(() => {
const obj = { foo: 'foo', bar: 'bar' };
for (const [prop, val] of Object.entries(obj)) {
eval(`var ${prop} = val`);
}
console.log(foo);
console.log(bar);
})();
Вышесказанное также можно сделать в ES5, если нужно, но не нужно - это проблема X / Y