在 ES6 中,我们可以使用 Object.assign
方法来将一个或多个源对象的属性复制到目标对象中。Object.assign
方法接受一个目标对象和一个或多个源对象作为参数,并返回目标对象。
语法
Object.assign(target, ...sources)
其中,target
是目标对象,sources
是一个或多个源对象。如果多个源对象具有相同的属性,则后面的属性会覆盖前面的属性。
示例
const target = { a: 1, b: 2 }; const source1 = { b: 3, c: 4 }; const source2 = { c: 5 }; const result = Object.assign(target, source1, source2); console.log(target); // { a: 1, b: 3, c: 5 } console.log(result); // { a: 1, b: 3, c: 5 }
在上面的示例中,我们创建了一个目标对象 target
和两个源对象 source1
和 source2
。我们将 source1
和 source2
的属性复制到 target
中,并将结果存储在 result
中。最后,我们打印出 target
和 result
,它们的值是相同的。
应用场景
对象合并
Object.assign
方法可以用于合并多个对象,并将它们的属性复制到一个新对象中。这对于合并配置文件或者合并用户输入的选项非常有用。
const config = { debug: false }; const userConfig = { debug: true, username: 'john.doe' }; const mergedConfig = Object.assign({}, config, userConfig); console.log(mergedConfig); // { debug: true, username: 'john.doe' }
在上面的示例中,我们创建了一个默认配置对象 config
和一个用户配置对象 userConfig
。我们使用 Object.assign
方法将这两个对象合并到一个新对象 mergedConfig
中,并打印出该对象。
对象克隆
Object.assign
方法还可以用于克隆对象。我们可以使用 Object.assign
方法将一个空对象作为目标对象,并将要克隆的对象作为源对象。
const obj = { a: 1, b: 2 }; const clone = Object.assign({}, obj); console.log(clone); // { a: 1, b: 2 }
在上面的示例中,我们创建了一个对象 obj
,然后使用 Object.assign
方法将一个空对象作为目标对象,并将 obj
作为源对象,从而克隆了 obj
。
总结
Object.assign
方法可以用于将一个或多个源对象的属性复制到目标对象中。它可以用于合并多个对象、克隆对象等多种场景。在使用 Object.assign
方法时,我们需要注意源对象的属性会覆盖目标对象的同名属性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bda9e5add4f0e0ff75607e