ArrayBaseObjects라는 20 개의 객체 BaseObjects 배열이 있습니다. 사용자가 개체를 호출하면 해당 개체가 UI에로드되고 속성을 변경합니다. 이런 뭔가 :자바 스크립트 변경 지속
var ArrayBaseObjects = new Array();
var CurrentObject = null;
function OpenRecord (TheIndex) {
CurrentObject = ArrayBaseObjects[TheIndex];
}
function RecordChanges() {
// bunch of statements that make changes to CurrenObject
CurrentObject.CrazyStuff = NewValue;
}
문제는 사용자가 CurrentObject 변경을 할 때, 그것은 또한 ArrayBaseObjects 원래 객체의 값을 변경하는 점이다.
왜 그런지 모르겠습니까 ?? CurrentObject = ArrayBaseObjects[TheIndex];
을 쓸 때 왜 CurrentObject를 변경하면 ArrayBaseObject에있는 객체의 값에도 영향을 줍니까 ??
나는 사용자가 변경 한 orignal 개체와 CurrentObject 사이의 값을 비교하려고하지만 항상 동일합니다. 이것이 내가 의도 한대로 작동하도록하기 위해 어떤 변화가 필요합니까?
설명해 주셔서 감사합니다.
(http://stackoverflow.com/questions/ [이 심판에 의해에 꽤 괜찮은 쓰기 업 될 것으로 보인다/자바 스크립트에서 값] 518000/is-javascript-a-pass-by-value-by-reference-by-value-language) –