Front-end/JavaScript
JS FP 4편 - 불변성(Immutability)
파리외 개발자
2023. 3. 9. 18:06
JS의 불변성
불변성이란 함수등의 동작을 거쳐도 대상이 되는 변수의 값이 변하지 않는 것을 의미하며
side effect의 중요성이 있는 FP에서는 불변성을 지키는 편이 좋다.
const obj = { name: "Kim" };
obj.name = "Park";
객체 obj가 있을 때 name 속성을 park로 바꿀 수 있다면
obj는 불변성이 지켜지지 않는 것이다.
const는 재할당이 불가능하다, 하지만 그게 불변성이 지켜진다는 것은 아니다.
//Immutability
const obj = { name: "Kim" };
function clone(obj) {
return { ...obj }; //this is pure
}
function updateName(obj) {
const obj2 = clone(obj);
obj2.name = "Park";
return obj2;
}
const updateObj = updateName(obj);
console.log(obj, updateObj);
함수를 작성할 때 변환하고 싶은 대상을 새롭게 만들어서
리턴한다면 연산에 사용된 매개체인 obj는 불변성을 지킬 수 있게 된다.