Сообщение от jeka123
|
присвоение идет для всех элементов массива.Почему?
|
Потому что все элементы массивов ссылкаются на один и тот же объект. Нужно сделать, чтобы это были разные объекты. Вариантов куча:
1.
pl_list_1[i][j] = new Sea;
pl_list_2[i][j] = new Sea;
function Sea() {
this.chip = false;
this.opened = false;
this.msg = 'Промазал';
}
2
pl_list_1[i][j] = getSea();
pl_list_2[i][j] = getSea();
function getSea() {
return {
chip :false,
opened:false,
msg:'Промазал'
};
}
3.
var sea = {
chip :false,
opened:false,
msg:'Промазал'
};
pl_list_1[i][j] = Object.create(sea);
pl_list_2[i][j] = Object.create(sea);
4.
pl_list_1[i][j] = {
chip :false,
opened:false,
msg:'Промазал'
};
pl_list_2[i][j] = {
chip :false,
opened:false,
msg:'Промазал'
};
Все эти варианты, на первый взгляд, работают одинаково. Но все они разные и каждый имеет свои особенности. Такие дела.