JavaScript 对象 assign() 方法
Object.assign()
方法将给定对象的所有可枚举属性复制到单个对象中并返回它。
示例
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { c: 3 };
// 将 obj1、obj2、obj3 的所有属性
// 组合到单个对象中
const mergedObj = Object.assign(obj1, obj2, obj3);
console.log(mergedObj);
// 输出:{ a: 1, b: 2, c: 3 }
assign() 语法
assign()
方法的语法为:
Object.assign(target, ...sources);
这里,assign()
是一个静态方法。因此,我们需要使用类名 Object
来访问该方法。
assign() 参数
assign()
方法接受以下参数:
- target - 目标对象,我们将向其复制源对象的所有属性。
- sources - 源对象,我们想要复制其属性。
assign() 返回值
assign()
方法返回目标对象。
注意: 如果目标对象和源对象具有相同的键,则目标对象中的属性将被源对象中的属性覆盖。
示例 1:使用 Javascript Object.assign() 克隆对象
// 创建源对象
const obj = {
name: "Alan Turing",
age: 20,
};
// 创建目标对象
let newObject = {};
// 将 obj 的可枚举属性复制到 newObject
// newObject 被返回并存储在 copy 对象中
const copy = Object.assign(newObject, obj);
// 打印 copy 对象
console.log(copy);
// 输出:{ name: 'Alan Turing', age: 20 }
// 打印 newObject
console.log(newObject);
// 输出:{ name: 'Alan Turing', age: 20 }
在上述示例中,我们使用了 assign()
方法将 obj 的内容分配给 newObject。
由于 assign()
修改了目标对象并返回相同的对象,因此 copy 和 newObject 是彼此的克隆。因此,当我们打印它们时,我们得到了相同的输出。