【问题标题】:Reassign JavaScript variable via destructuring [duplicate]通过解构重新分配 JavaScript 变量 [重复]
【发布时间】:2019-11-24 11:41:53
【问题描述】:

如果我在 JavaScript 中声明新变量,我可以通过解构来实现,如下所示:

const myObj = {
  thing1: 'first thing',
  thing2: 'second thing'
};

const { thing1, thing2 } = myObj;

我想做一些类似的事情,但是通过重新分配作为函数参数传递的变量(通过隐含的let 分配,因此不是静态的)。我尝试了类似以下的方法:

function myFun(thing1, thing2) {
  const myObj = {
    thing1: 'first thing',
    thing2: 'second thing'
  };

  { thing1, thing2 } = myObj;
}

这在= 上给了我一个意外的令牌错误。这是可能的还是我只能用解构声明新变量?

【问题讨论】:

  • 请注意,参数是按值传递的,因此在函数中分配给它们的值永远不会返回给调用者。这与你是否使用解构无关。

标签: javascript ecmascript-6 destructuring


【解决方案1】:

这很简单。对于已经声明的变量,如果您想使用解构重新分配它们的值,只需在语句周围添加括号。

( { thing1, thing2 } = myObj );

【讨论】:

  • @NagaSaiA 我没听懂你在说什么。 thing1 和 thing2 将具有值 'first thing' & 'second thing' 。
  • 感谢您的回答!但我认为括号是正确的术语( ... ),而不是大括号{ ... }。尽管这可能是一个本地化术语。对我来说:括号 ( )、方括号 [ ]、大括号 { }
  • 太晚了,但我可以问一下为什么会这样吗?
  • @Zach 这是实现此目的的 JS 语法。
猜你喜欢
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
相关资源
最近更新 更多