具有解构的对象属性赋值?

eri*_*oco 7 javascript variable-assignment ecmascript-6

我想使用ES6解构来分配对象的属性,但无法弄清楚语法.

<= ES5:

var dst = {};  // already in existence, with its own props, methods, etc.
var src = { a: 'foo', b: 'bar', c: 'baz' };
dst.a = src.a;
dst.b = src.b;
Run Code Online (Sandbox Code Playgroud)

> = ES6(我自己编写的,不工作的语法):

let dst = {};
let src = { a: 'foo', b: 'bar', c: 'baz' };
dst[{a, b}] = src;
Run Code Online (Sandbox Code Playgroud)

是否可以在对象上使用解构赋值?什么是正确的语法?

编辑:在我的用例中,dst是一个在需要合并src属性的子集之前存在的对象; 它不是一个仅为"借用"而创建的新对象src.

Ry-*_*Ry- 8

我想你将不得不重复dst:

({a: dst.a, b: dst.b} = src);
Run Code Online (Sandbox Code Playgroud)

  • 我试过这个,但没有围绕它的parens.这导致语法错误 - 我现在明白这是因为解构赋值被解释为对象文字.谢谢! (3认同)