返回

JavaScript学习总结之Object.assign()方法详解

前端

前言

在最近编写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()方法有所帮助。