Object.assign()用法

本文主要参考了MDN关于Object构造函数自带方法的讲解。

syntax:Object.assign(target, ...sources)
将所有可枚举属性的从一个或多个源对象复制到目标对象,并返回目标对象。
(源对象会从后至前,逐级覆盖具有相同键名的属性)

Object.assign({
   a:2},{
   a:1,b:2})				// {a: 1, b: 2}
Object.assign({
   },{
   a:2},{
   a:4})				// {a: 4}
Object.assign({
   a:1}, {
   b:2}, {
   b:4}, {
   })		// {a: 1, b: 4}

描述
Object.assign 方法只会拷贝源对象自身的可枚举属性到目标对象。
(换言之,继承属性和不可枚举属性不能被拷贝)
该方法使用源对象的getter和目标对象的setter,来复制、分配、定义属性。

String类型和 Symbol 类型(ES5不支持)的属性都会被拷贝。

在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。

Object.assign() 不会在那些source对象值为 null 或 undefined 的时候抛出错误。

用法

  1. 复制对象(但不是深拷贝)
	let obj = {
   
	    a: '我是值属性',
	    b: {
   
	        c: '我是对象引用属性'
	    }
	}
	
	let obj2 = Object.assign(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值