重新分配JavaScript变量通过解构赋值

5

如果我想在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;
}

这让我在=上遇到了意外的标记错误。这是可能的吗,还是我只能使用解构声明新变量?


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

13

这很简单。如果您想要使用解构重新分配变量的值,只需在语句周围添加括号即可。这些变量已经被声明过了。

( { thing1, thing2 } = myObj );

1
@NagaSaiA,我不明白你在说什么。thing1和thing2将拥有值“第一件事”和“第二件事”。 - abhinav
谢谢你的回答!但我认为括号 ( ... ) 才是正确的术语,而不是花括号 { ... }。虽然这可能是一个本地化的术语。对我来说: 圆括号 ( ),方括号 [ ],花括号 { }。 - bombillazo
非常晚了,但我可以问一下为什么这个有效吗? - Zach
@Zach 这是实现此功能的JS语法。 - abhinav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接