2 回答
TA贡献1864条经验 获得超2个赞
如果您事先知道密钥,则可以解构(仅限 ES6):
const obj = { foo: 'foo', bar: 'bar' };
const { foo, bar } = obj;
console.log(foo);
console.log(bar);
不推荐,因为全局变量不好,但您可以将对象分配给window,然后将其属性作为独立变量引用。这在 ES5 中使用 polyfill 是可行的:
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 问题
TA贡献1856条经验 获得超17个赞
您可以使用解构
const obj = {a : "aaaa", b : "bbbb"};
//use destructuring
const { a } = obj;
console.log(a);
添加回答
举报