, 나는 증분 값을 설정하려는 배열 객체에 설정하지 :자바 스크립트 변수가 나는 자바 스크립트에서이 실행
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
}
}
무엇이 잘못 되었나요?
'part [i] = parts_default'이면 동일한 객체를 모든 속성에 설정합니다. 'parts [1] === parts [2] && parts [2] === parts [3]'이므로,'parts [i] .varX'를 사용할 때 같은 객체를 수정합니다. –
reference는 각각 메모리에있는 동일한 객체에 대한 포인터 일뿐입니다. – Sam