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

如何结合this与对象解构一行完成类属性赋值?

一行实现类属性的解构赋值

当前我通过以下代码先解构获取变量,再赋值给类属性:

const { state$, toggleState } = StateManagement.useToggleState$(initialState);
this.layoutState$ = state$;
this.toggleState = toggleState;

我想去掉中间变量,用一行代码完成,尝试了这种写法但直接报错:

{ state$: this.layoutState$, toggleState: this.toggleState } = StateManagement.useToggleState$(initialState);

给代码加上括号后IDE不再报错,却没完成实际赋值。请问如何用一行代码实现类属性的赋值?


你需要用括号将整个解构赋值语句包裹起来,确保它被解析为赋值表达式而非块级语句,这样就能完成一行赋值:

({ state$: this.layoutState$, toggleState: this.toggleState } = StateManagement.useToggleState$(initialState));

为什么要这么写:

  • 当代码以{开头时,JavaScript会默认把它当成块级作用域的起始标记,而不是解构赋值的语法,所以直接写会触发语法错误。
  • 用()把整个语句包起来后,JS引擎就会把它识别成一个表达式,解构赋值的逻辑就能正常运行,把useToggleState$返回对象里的state$和toggleState,分别赋值给类实例的this.layoutState$和this.toggleState。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:05:15