在ES6 / 7中有选择地分配对象属性

时间:2015-09-07 14:54:13

标签: javascript properties ecmascript-6 assign ecmascript-7

ES6 / 7中是否有一个简短的语法,用于将对象的某些选择性属性分配给另一个?例如,我想这样做

const a = {
  x: b.x,
  y: b.y,
  z: b.z
}

可以使用2-3个属性,但是有更多属性会变得多余。我怎样才能简单?

编辑:这个问题不是关于解构对象。我知道解构可以完成这项工作,但它并不比我上面给出的例子更短/更方便,所以这不是这里提到的事情

1 个答案:

答案 0 :(得分:1)

我将此作为答案发布,因为它确实有用,使用它并不是一个明智的想法。

const b = {x: 1, y: 2, z: 3};

with (b) {
    const a = {x, y, z};
}

console.log(a);

严格模式实际上禁止使用自ECMA5以来的with语句,因此运行并遵守严格模式的客户端肯定会讨厌你的代码。

with声明还有其他缺点,你可以在这里阅读更多相关内容:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/with