返回
JavaScript学习总结之Object.assign()方法详解
前端
2023-09-04 07:34:19
前言
在最近编写ES6相关博文时,我意识到我对Object.assign()
方法的了解并不深入,过去我也从未接触过它,所以我决定查阅相关资料,以便更好地理解和运用该方法。
Object.assign()方法概述
Object.assign()
方法用于将一个或多个源对象的可枚举属性拷贝到目标对象。如果目标对象已存在同名属性,则源对象的属性值将覆盖目标对象的属性值。该方法返回修改后的目标对象,而不会创建新的对象。
语法
Object.assign(target, ...sources);
参数
target
:目标对象,将源对象的可枚举属性拷贝到该对象。...sources
:源对象,可以是多个对象,这些对象的属性将被拷贝到目标对象。
返回值
返回修改后的目标对象。
使用示例
const target = {
name: 'John Doe',
age: 30
};
const source1 = {
address: '123 Main Street',
city: 'Anytown'
};
const source2 = {
occupation: 'Software Engineer'
};
const result = Object.assign(target, source1, source2);
console.log(result);
// 输出:
// {
// name: 'John Doe',
// age: 30,
// address: '123 Main Street',
// city: 'Anytown',
// occupation: 'Software Engineer'
// }
注意事项
Object.assign()
方法不会拷贝不可枚举的属性,如Symbol属性。- 如果目标对象或源对象是冻结对象(Frozen Object),则
Object.assign()
方法将抛出TypeError
异常。 Object.assign()
方法不会深拷贝嵌套对象。如果源对象或目标对象包含嵌套对象,则这些嵌套对象将被浅拷贝。
结束语
Object.assign()
方法是一个非常有用的工具,可以用于合并多个对象、扩展现有对象或复制对象。它具有简单的语法和易于理解的使用方式。希望本文对您更好地理解和运用Object.assign()
方法有所帮助。