- assign: 合并对象的方法之一
- 会修改对象,并且返回新的对象
/** * 简单复制 */
dest = {};
src = { id: 'src' };
result = Object.assign(dest, src);
// Object.assign 修改目标对象
// 也会返回修改后的目标对象
console.log(dest === result);
// true
console.log(dest !== src);
// true
console.log(result);
// { id: src }
console.log(dest);
// { id: src }
/** * 多个源对象 */
dest = {};
result = Object.assign(dest, { a: 'foo' }, { b: 'bar' });
console.log(result);
// { a: foo, b: bar }
如果赋值期间出错,则操作会中止并退出,同时抛出错误。Object.assign()没有“回滚”之前 赋值的概念,因此它是一个尽力而为、可能只会完成部分复制的方法。