是否可以通过一行代码一次性修改多个对象或类实例的属性?

问题描述 投票:0回答:1

在 JavaScript 中(假设版本 >= ES6),假设我有一个类;

class MyClass {
  constructor() {
    this.property = null;
  }
}

...我创建了该类的两个新实例;

let inst1 = new MyClass(), inst2 = new MyClass();

现在,假设我想要

inst1
inst2
property
值为
true
。这可以轻松完成

inst1.property = true;
inst2.property = true;

但是,如果我最终有很多实例,重新分配每个值,每次都换行,代码可能会失控;

inst1.property = true;
inst2.property = true;
inst3.property = true;
inst4.property = true;
// ...

现在,我知道,这是一个非常糟糕的例子,但你可以想象一个更好的例子来代替它。我想知道是否有任何方法可以通过类似于对象解构的方式仅用一行代码来修改多个实例。例如,

[inst1, inst2, inst3, inst4].property = true;

如果这是一个糟糕的问题,我深表歉意,但我只是注意到我的代码在与此类似的场景中变得混乱,并且想知道是否有解决方案。谢谢您的帮助。

javascript class object destructuring es6-class
1个回答
0
投票

对于手动列出实例的单行:

[inst1, inst2, inst3, inst4].forEach(el => {el.property = true;})

但是,如果您确实希望所有实例都具有相同的该属性值,那么也许它不应该是实例变量,而可能只是每个实例都可以引用的类属性。

© www.soinside.com 2019 - 2024. All rights reserved.