You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现ES6+中的反向解构?批量将变量赋值给对象属性

批量将变量赋值给对象属性的优雅方法

你说的这种「反向解构」操作,ES6+里有两种非常简洁的实现方式,完全不用逐个手动赋值:

1. 使用对象展开运算符(ES2018+)

如果允许创建新对象替代原对象,用展开语法最直观:

const name = 'John'
const age = 30
const eyeColor = 'brown'

// 生成新对象,保留原对象其他属性,覆盖指定属性
myObject = { ...myObject, name, age, eyeColor }

这里的name等价于name: name,当变量名和属性名一致时可省略键名。

2. 使用Object.assign(ES6+)

如果需要直接修改原对象属性(不创建新对象),用Object.assign更合适:

const name = 'John'
const age = 30
const eyeColor = 'brown'

// 直接把属性合并到原对象,覆盖同名属性
Object.assign(myObject, { name, age, eyeColor })

额外说明

如果变量名和目标属性名不一致,显式指定键名即可:

const newName = 'John'
Object.assign(myObject, { name: newName })

不管是18个还是更多变量,只要把它们按变量名(或属性名: 变量名)的格式放进大括号里,就能一次性完成批量赋值,完全不用重复写myObject.xxx = xxx。

内容的提问来源于stack exchange,提问作者anthony galligani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:05:13