우리는 다음과 같은 자바 스크립트 코드가 이러한 특정 라인할당 동작은 전체 개체에 대한 차이와 그 속성 예를 들어
o = {
message: "new object!"
};
우리가 이름을 'O'새로운 개체를 만드는에서
function f(o) {
o.message = "set in f";
o = {
message: "new object!"
};
console.log(`inside f: o.message="${o.message}" (after assignment)`);
}
let o = {
message: 'initial value'
};
console.log(`before calling f: o.message="${o.message}"`);
f(o);
console.log(`after calling f: o.message="${o.message}"`);
을, 이전 줄에서
o.message = "set in f";
우리는 원래 개체의 특성을 na 나 '오'(그래서 내 이해에 개체 자체를 수정).
내 질문에 이러한 상황에서 할당 동작이 다른 이유는 무엇입니까? 객체 자체와 그 속성에 대해 동일해야하지 않습니까?
예를 들어 함수 본문에서 'o'할당은 새 '오'객체를 생성하는 대신 원래 'o'객체를 변경해야합니다.
아니요 ... 아주 간단한 예는'{}! = {}'입니다. 각각은 다른 객체에 대한 참조가없는 새로운 객체입니다. – charlietfl