250407

p.175

참조에 의한 전달과 외부 상태의 변경

function changeVal(primitive, obj){
	primitive += 100;
	obj.name = "Kim";
}

var num = 100;
var person = { name: "Lee" };

console.log(num) // 100
console.log(person) // { name : "Kim" }

changeVal(num, person);

//원시값은 원본이 훼손되지 않고,
console.log(num) // 100 
//참조값은 원본이 뤠손된다.
console.log(person) // { name: "Kim " }

→ 이처럼 함수가 외부 상태를 변경하면 상태 변화 추적이 어려워진다.

<aside> 💡

객체를 유지하기 위해 불변객체로 만들기

객체를 깊은 복사 하여 새로운 객체를 생성하고 재할당하여 원본 객체를 유지한다.

</aside>