ecmascript-6 – ES2015在相同范围内两次构造对象

前端之家收集整理的这篇文章主要介绍了ecmascript-6 – ES2015在相同范围内两次构造对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有一种干净的方法可以从同一范围内的2个相似对象中构造相同的变量?
function(oldState,newState) {
  let {foo,bar} = oldState;
  // do stuff //
  let {foo,bar} = newState; // illegal double declaration in same scope
  {foo,bar} = newState; // illegal,not sure why
  let {foo: foo1,bar: bar1} = newState; // legal but ugly
  foo = newState.foo; // legal,but requires multiple lines
}

解决方法

您可以将赋值包装在parens中,以通过解构重新分配变量.这是必要的原因是因为否则解析器假定{开始一个块而不是一个对象文字或赋值模式. This blog post更详细地解释了这种情况.
function(oldState,bar} = oldState;
  // do stuff //
  ({foo,bar} = newState);
}

猜你在找的JavaScript相关文章