能否用一行代码批量修改多个JavaScript类实例的属性?
批量修改多个类实例的属性(ES6+)
你尝试的[inst1, inst2, inst3, inst4].property = true写法不可行——数组本身是独立对象,这个操作只会给数组自身添加一个property属性,完全不会影响数组里的MyClass实例。
要批量修改多个实例的属性,不需要逐行赋值,用数组遍历方法就能简洁实现,以下是几种常用方案:
1. 使用forEach方法(最直观的一行写法)
[inst1, inst2, inst3, inst4].forEach(inst => inst.property = true);
遍历数组里的每个实例,直接修改它们的property属性,逻辑清晰且代码简洁。
2. 使用for...of循环(一行实现)
for (const inst of [inst1, inst2, inst3, inst4]) inst.property = true;
语法更贴近传统循环,同样能一行完成批量修改。
为什么没有类似对象解构的直接语法?
对象解构是针对单个对象的属性提取/赋值,而多个实例是独立的引用类型,必须逐个访问它们的属性。目前JS没有原生语法能直接“解构”数组中所有元素的同名属性并批量赋值,不过上面的遍历方法已经能高效解决冗余代码的问题。
内容的提问来源于stack exchange,提问作者user22588911
相关产品推荐
相关产品推荐

