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

Selectively assign object properties in ES6/7

本文关键字:分配 对象 属性 选择性 ES6      更新时间:2023-09-26

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

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

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

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

我把这个作为答案,因为它确实有效,只是不是个明智的主意。

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