불변성 Immutability

박현석·2022년 8월 22일
1

Javascript ES6+

목록 보기
32/88

불변성 Immutability

  • 함수내부에서 외부로부터 주어진 인자의 값을 변경하는 것은 💩
  • 상태변경이 필요한 경우에는, 새로운 상태를(오브젝트, 값) 만들어서 반환해야 한다. ✨
  • 원시값 - 값에 의한 복사 <- 값 자체가 복사되기때문에 큰 문제는 없다.
  • 객체값 - 참조에 의한 복사 (메모리주소) <- 동일한 오브젝트를 가리키기 때문에 함수 내부에서 인자로 전달된 값을 변경하면 큰문제가 발생한다.
function displayObj(obj) {
  obj.name = "Bob";
  console.log(obj);
}

❌❌❌❌❌❌ 외부로 부터 주어진 인자(오브젝트)를 내부에서 변경 ❌

function changeName(obj) {
  return { ...obj, name: "Bob" };
}

반환 할때는 새로운 오브젝트를 만드는게 중요!

코딩 할 때 중요한 컨셉

  • 모든 프로젝트를 불변성을 유지하면서 코딩하는 것이 좋다.
profile
선한 영향력을 주는 사람

0개의 댓글