在 ES6 JS 中解构对象时,您可以使用{ a, b }
语法来创建新变量,分别从该对象调用a
和调用。b
但是,据我所知,没有办法让对象的键自动创建具有这些名称的本地范围变量。在下面的例子中,我希望能够使用它的假设伪代码,它const {} = args;
会自动生成。const a
const b
const bar = { a: 'apple', b: 'ball' };
const foo = (args) => {
const { a, b } = args;
console.log(a, b); // Great!
const {} = args; // I am aware this isn't valid syntax...
console.log(a, b) // Because of course, it doesn't work.
};
foo(bar);
原因纯粹是因为,在这个 MCVE 之外,我实际上使用了一个带有几十个键的大型对象,我想将某些值从其中传递到 Promise 链的下一部分。我当然可以使用{ a: args.a, b: args.b }
,但我正在尝试找到最短、最干净的方法。我想我真正想要的是 PHP 的extract()类似语法,但在 ES6 JS 中。
这可能吗?
Ps,我知道如果对象的内容不受信任,这可能被视为一个非常糟糕的主意。
pps。我正在测试的环境是 Node 7.9.0