
값으로 전달받은 객체에 변경을 가하더라도 원본객체는 변하지 않아야하는 경우(변수복사 후 객체의 프로퍼티 값을 변경했을시 원본개체의 프로퍼티 값도 변경되기 때문)
내부 프로퍼티를 변경할 필요가 있을때 마다 매번 새로운 객체를 만들어 재할당 하기로 규칙을 정하거나 자동으로 새로운 객체를 만드는 도구를 활용한다면 불변성을 확보할수 있을 것입니다.
Object.assign(target, ...sources)
Spread syntax(전개 구문)
- 재귀함수를 사용하는 방법
function cloneObject(obj) { var clone = {}; for (var key in obj) { if (typeof obj[key] == "object" && obj[key] != null) { clone[key] = cloneObject(obj[key]); } else { clone[key] = obj[key]; } } return clone; }
- 객체를 JSON문법으로 표현된 문자열로 전환했다가 다시 JSON객체로 바꾸는 방법이다.
var CopyObject = function (target) { return JSON.parse(JSON.stringify(target)) }
- immutable.js 등의 라이브러리 사용