Object.assign()
是一个 JavaScript 方法,用于将一个或多个源对象的属性复制到目标对象中。它接受目标对象作为第一个参数,后面可以跟一个或多个源对象。
- 示例:
var target = { a: 1, b: 2 };
var source = { b: 4, c: 5 };
var result = Object.assign(target, source);
console.log(result); // 输出:{ a: 1, b: 4, c: 5 }
console.log(target); // 输出:{ a: 1, b: 4, c: 5 }
- 在上述示例中,
Object.assign()
将源对象source
的属性复制到目标对象target
中。如果目标对象中已经存在相同的属性,则会被源对象中的属性值覆盖。最终,Object.assign()
返回目标对象target
。 - 需要注意的是,
Object.assign()
进行的是浅拷贝,即只复制对象的引用而非对象本身。如果源对象或目标对象中的属性值是对象或数组,复制的是引用,而不是创建新的对象或数组。 - 另外,
Object.assign()
不会复制源对象的继承属性和不可枚举属性。
- 把对象source拆开写的效果也是一样的
var target = { a: 1, b: 2 };
var result = Object.assign(target, { b: 4, c: 5 });
console.log(result); // 输出:{ a: 1, b: 4, c: 5 }
console.log(target); // 输出:{ a: 1, b: 4, c: 5 }