ES6学习-Object.assign方法

Object.assign方法

// const target={
//     a:123,
//     b:456
// }

// const tem={
//     a:321,
//     c:789
// }

// const result=Object.assign(target,tem)//assign方法,用后面对象的属性覆盖第一个对象的属性,可以传入多个对象
// console.log(result);

// const obj={name:'xm'}
// function fnc(obj){
//     obj.name='111'
//     console.log(obj);

//     const fncObj=Object.assign({},obj)//通过assign方法复制一个新对象
//     fncObj.name='222'
//     console.log(fncObj);
// }

// fnc(obj)

//但是对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过Object.assign({},srcobj);得到的新对象为深拷贝。
//如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的,这是Object.assign()特别需要注意的地方。
const obj = { name: 'xm', hobby: { eat: '1',drink:'2' } }
function fnc(obj){
    obj.name='111'

    const fncObj=Object.assign({},obj)//通过assign方法复制一个新对象
    fncObj.name='222'
    fncObj.hobby.eat='3'
    console.log(obj);
    console.log(fncObj);//会发现输出的eat值都是3,name值没有影响
}

fnc(obj)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值