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

时间:2015-11-16 19:09:23

标签: javascript variable-assignment ecmascript-6

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

< = 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;

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

let dst = {};
let src = { a: 'foo', b: 'bar', c: 'baz' };
dst[{a, b}] = src;

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

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

2 个答案:

答案 0 :(得分:5)

我认为你将不得不重复dst

({a: dst.a, b: dst.b} = src);

答案 1 :(得分:0)

IMO最干净的方法如下:

const dist = {a: 'foo', b: 'bar', c: 'baz'};

const {a, b} = dist;

const src = {a, b};

运行此codepen

中的示例