JavaScript 对象合并示例

代码示例

const a = {
  name: "ygb1",
  age: 18
}
const b = {
  name: "ygb2",
  sex: "男"
}
const c = {...a, ...b}
console.log(c);

这段JavaScript代码的作用是将两个对象ab合并成一个新对象c,具体解释如下:

1. 定义对象 a 和 b

javascript

const a = {
  name: "ygb1",
  age: 18
};
const b = {
  name: "ygb2",
  sex: "男"
};
  • 对象 a 包含两个属性:name(值为 "ygb1")和 age(值为 18)。

  • 对象 b 包含两个属性:name(值为 "ygb2")和 sex(值为 "男")。


2. 使用展开语法(Spread Operator)合并对象

javascript

const c = { ...a, ...b };
  • ...a 会展开对象 a 的所有属性({ name: "ygb1", age: 18 })。

  • ...b 会展开对象 b 的所有属性({ name: "ygb2", sex: "男" })。

  • 合并规则:如果属性名冲突(如 name),后面的对象(b)的属性值会覆盖前面的对象(a)的。


3. 合并结果 c

javascript

console.log(c); 
// 输出: { name: "ygb2", age: 18, sex: "男" }
  • name 来自 b(覆盖了 a 的同名属性)。

  • age 来自 ab 中没有此属性)。

  • sex 来自 ba 中没有此属性)。


关键概念:对象展开语法({ ...obj }

  • 作用:将对象的所有可枚举(enumerable)属性展开到新对象中。

  • 合并顺序:后面的对象属性会覆盖前面的同名属性。

  • 浅拷贝:展开语法是浅拷贝(嵌套对象会共享引用)。


等价写法(不使用展开语法)

javascript

const c = Object.assign({}, a, b);
  • Object.assign() 的作用与展开语法一致,但展开语法更简洁直观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值