问答

JavaScript中有没有直接的对象属性赋值

作者:admin 2021-04-19 我要评论

示例代码如下: a = {id:1,name:'abc',type:'def'};b = {name:'mmm',type:'nnn'};a = b; js中有没有直接将a和b中共有的属性赋值,然后不同的不动? ### 一个就是...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

示例代码如下:

a = {id:1,name:'abc',type:'def'};
b = {name:'mmm',type:'nnn'};
a = b;

js中有没有直接将a和b中共有的属性赋值,然后不同的不动?

###

一个就是和1楼一样,用展开符,

const obj1 = {a:1,b:2}
const obj2 = {a:3,b:0,c:10}
const newObj = { ...obj1, ...obj2 }
console.log(newObj)
// {a: 3, b: 0, c: 10}

一个就是用Object.assign()

const obj1 = {a:1,b:2}
const obj2 = {a:3,b:0,c:10}
const newObj = Object.assign({}, obj1, obj2)
console.log(newObj)
// {a: 3, b: 0, c: 10}

两个都是 位置靠后覆盖 位置靠前 的相同属性。

###

有啊 es6

let a = { name: 'abc', type: 'def', id: 1 }
const b = { name: 'mmm', type: 'nnn' }

a = { ...a, ...b }

// log a = { name: 'mmm', type: 'nnn', id: 1 } 如果想要不同的覆盖效果,可以调换a, b的位置  或者你也可以理解  Map, Set 也可以实现

###

感谢两位高手的回答,确实如此

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器