请描述Object.assign()方法的作用和用法。

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

文末有我帮助400多位同学成功领取到前端offer的场景题哦

作用:

  • 合并对象:你可以使用 Object.assign() 来合并两个或多个对象。如果目标对象和目标源对象有同名属性,或多个源对象有同名属性,则后面的源对象的属性将覆盖前面的属性。
  • 克隆对象:虽然 Object.assign() 主要用于合并对象,但它也可以用来克隆对象(浅克隆)。但需要注意的是,如果源对象的属性值是引用类型(如数组或另一个对象),那么它只会拷贝引用,而不是真正的值。

用法:

Object.assign(target, ...sources)
  • target:目标对象。
  • ...sources:一个或多个源对象。

示例:

合并对象
let obj1 = { a: 1 };
let obj2 = { b: 2 };
let obj3 = { c: 3 };

let result = Object.assign(obj1, obj2, obj3);

console.log(result); // { a: 1, b: 2, c: 3 }
console.log(obj1);   // 注意:obj1 也被改变了,因为 target 是 obj1
// { a: 1, b: 2, c: 3 }
克隆对象(浅克隆)
let obj = { a: 1, b: { c: 2 } };

let clone = Object.assign({}, obj);

console.log(clone); // { a: 1, b: { c: 2 } }
console.log(clone.b === obj.b); // true,因为是浅克隆,所以 b 的属性仍然引用同一个对象

注意事项:

  • 如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的源对象的属性将覆盖前面的属性。
  • Object.assign() 是浅拷贝,如果源对象的属性值是一个指向对象的引用,它只拷贝那个引用值,而不是对象本身。
  • Object.assign() 不会拷贝继承属性和不可枚举的属性(enumerable: false)。
  • Object.assign() 会跳过 nullundefined 源对象,但不会报错。
  • 如果不是所有的源对象都是对象,那么 Object.assign() 在遇到非对象参数之前会拷贝之前的对象参数。如果任一源参数是 nullundefined,那么它们会被忽略,例如,Object.assign({}, undefined) 将只会返回 {}
  • 堪称2024最强的前端面试场景题,让421人成功拿到offer
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值