我在JavaScript運行此,我想設置增量值:JavaScript變量數組對象沒有設置
var parts = {};
var parts_default = {success: function(){}, dane: "cos tam"};
for (var i = 1; i <= 3; i++) {
parts[i] = parts_default ;
parts[i].varX = i ;
}
console.log(parts);
我得到的結果:
{
"1": {
"dane": "cos tam",
"varX": 3
},
"2": {
"dane": "cos tam",
"varX": 3
},
"3": {
"dane": "cos tam",
"varX": 3
}
}
變量VARx前提具有相同的值3,但我預計如下:
{
"1": {
"dane": "cos tam",
"varX": 1
},
"2": {
"dane": "cos tam",
"varX": 2
},
"3": {
"dane": "cos tam",
"varX": 3
}
}
這是怎麼回事?
'parts [i] = parts_default',您將所有屬性設置爲相同的對象。這意味着'parts [1] === parts [2] && parts [2] === parts [3]',所以當你使用'parts [i] .varX'時修改同一個對象。 –
Objects is passed by引用,因此每個只是指向內存中同一對象的指針。 – Sam