object.assign

简介: object.assign

Object.assign() 是 JavaScript 中的一个方法,用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

这是其基本语法:、

Object.assign(target, ...sources)
  • target:目标对象,所有其他源对象的属性都将被复制到该对象。
  • ...sources:一个或多个源对象,从中复制属性到目标对象。

Object.assign() 只会进行浅拷贝(shallow copy),如果源对象的属性值是一个指向对象的引用,它只拷贝那个引用,而不是对象本身。

这里有一个简单的例子:

const obj1 = { a: 1 };  
const obj2 = { b: 2 };  
const obj3 = { c: 3 };  
  
const mergedObj = Object.assign(obj1, obj2, obj3);  
  
console.log(mergedObj); // 输出:{ a: 1, b: 2, c: 3 }  
console.log(obj1);      // 输出:{ a: 1, b: 2, c: 3 }

在这个例子中,obj2obj3 的属性被复制到了 obj1 中,因为 obj1 是目标对象。最后,mergedObjobj1 指向同一个对象,因为 Object.assign() 修改了目标对象并返回了它。

需要注意的是,如果多个源对象具有相同的属性,则后面的源对象将覆盖前面的源对象的属性。

另外,Object.assign() 不会触发源对象上定义的 getter 或 setter,它只进行属性的简单赋值。

这个方法在合并或克隆对象时非常有用,但请注意它不会进行深拷贝,因此在处理包含嵌套对象或数组的对象时可能会遇到问题。如果需要深拷贝,你可能需要使用其他方法或库,如 JSON.parse(JSON.stringify(obj))(但请注意,这种方法有其自身的限制和缺陷)。

相关文章
|
2月前
|
JSON JavaScript 前端开发
Object.assign
Object.assign
24 1
|
8月前
|
JavaScript
js的Object.assign坑
js的Object.assign坑
37 0
|
11月前
|
前端开发 索引
Array.prototype.at
Array.prototype.at
63 0
|
12月前
|
Java 数据库连接 mybatis
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.ASSIGN_ID)
124 1
|
11月前
Object.assign详解
Object.assign详解
173 0
|
JavaScript 开发者
ES6之Object.assign()用法,Object.assign()到底是浅拷贝还是深拷贝?
ES6之Object.assign()用法,Object.assign()到底是浅拷贝还是深拷贝?
6841 1
|
前端开发
前端学习案例5-object.assign的应用
前端学习案例5-object.assign的应用
46 0
前端学习案例5-object.assign的应用
|
前端开发
前端学习案例2-object.assign之2
前端学习案例2-object.assign之2
50 0
前端学习案例2-object.assign之2
|
前端开发
前端学习案例4-object.assign的应用
前端学习案例4-object.assign的应用
58 0
前端学习案例4-object.assign的应用
|
前端开发
前端学习案例3-object.assign之3
前端学习案例3-object.assign之3
47 0
前端学习案例3-object.assign之3