const copyObjectDeep = (target) => {
let result = {};
if (typeof target === 'object' && target !== null) {
for (let prop in target) {
result[prop] = copyObjectDeep(target[prop]);
}
} else {
result = target;
}
return result;
};
target이 객체인 경우 내부 프로퍼티들을 순회하며 copyObjectDeep 함수를 재귀적으로 호출
const deepFreeze = (target) => {
if (target && typeof target === 'object' && !Object.isFrozen(target)) {
Object.freeze(target);
Object.keys(target).forEach(key => deepFreeze(target[key]));
}
return target;
};
reference.
코어 자바스크립트 (정재남)
모던 자바스크립트 Deep Dive (이웅모)