例如,这里有一个复制对象的方法:
const o = {
hello: 'hello',
world: 'world'
}
const { hello, world } = o;
const o2 = { hello, world };
我想使用 rest 参数来简化它,但它似乎不太可能(除非我只是搞乱了语法):
const o2 = { ...Object.keys(o) }
这是根本不可能的,还是我的语法有误?如果不可能,除了 Object.assign
之外,还有其他方法可以在 ES6 中复制对象吗?
var o2 = {};
Object.assign(o2, o);
我不喜欢 Object.assign
方法的唯一原因是因为它感觉“多变”并且比像 { ...Object.keys(o )
。想法?
最佳答案
有一个ES7 proposal for an object spread element ,它的工作原理与数组展开运算符非常相似:
var o1 = {foo: 42}:
var o2 = {...o1};
// o2 is now a shallow copy of o1
正如您在提案中所见,这实际上只是 Object.assign
的语法糖,相当于
var o2 = Object.assign({}, o1);
同样的提案还定义了一个对象 rest 元素,所以这也可以工作:
var {...o2} = o1;
关于javascript - 您可以使用剩余参数作为解构赋值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32620246/