您需要创建和填充一个数组,这里有两个选项,但它们的工作方式不同:
this.d = new Array(7).fill(new SH());
或者
this.d = [];
for(let t =0;t<7;++t){
this.d.push(new SH());
}
解释一下有什么区别,是怎么回事,因为下面的函数返回不同的结果:
this.d.forEach((p, i) => {
p.w = returnTrueOrFalse(i);
console.log('#i',i, p)
})
console.log('RES',this.d);
完全废话,所有布尔字段都重置为false。同时,数值字段保持正常。
在第二个选项中,一切都很好,并且两个 console.log 返回相同的结果。
我不知道出了什么问题。谢谢!

Array.prototype.fill()
因此,将
new Array(7).fill(new SH())用相同的实例填充数组SH,即 将是一个数组,其元素引用同一个对象。要通过方法解决您的问题
fill(),您可以这样做: