JavaScript에서 Object.freeze()와 Object.seal()의 차이점은 무엇입니까?

Object.freeze()Object.seal() 모두 JavaScript 개체가 변경되지 않도록 하는 방법으로 사용됩니다. 유사하지만 기억해야 할 주요 차이점이 있습니다.

const frozen = Object.freeze({ username: 'johnsmith' });
const sealed = Object.seal({ username: 'johnsmith' });

frozen.name = 'John Smith';  // frozen = { username: 'johnsmith' }
sealed.name = 'John Smith';  // sealed = { username: 'johnsmith' }

delete frozen.username;      // frozen = { username: 'johnsmith' }
delete sealed.username;      // sealed = { username: 'johnsmith' }

frozen.username = 'jsmith';  // frozen = { username: 'johnsmith' }
sealed.username = 'jsmith';  // sealed = { username: 'jsmith' }


새 속성이 추가되는 것을 방지하고 기존 속성이 제거되는 것을 방지하려면 두 방법 모두 적합합니다. 그러나 기존 속성이 변경되지 않도록 하려면 Object.freeze() 를 사용해야 합니다. 그 이유는 Object.seal()에서 기존 속성만 구성 불가능으로 표시하기 때문입니다. 즉, 해당 속성이 쓰기 가능한 한 해당 값을 변경할 수 있습니다.



만들다
읽다
업데이트
삭제

Object.freeze()아니

아니
아니
Object.seal()아니


아니


닫는 참고 사항으로 두 방법 모두 개체에서 얕은 동결/봉인을 수행한다는 점을 기억하십시오. 즉, 중첩된 개체와 배열은 고정되거나 봉인되지 않으며 변경될 수 있습니다. 이를 방지하기 위해 this related article에 설명된 대로 개체를 완전 동결할 수 있습니다.


짧은 고품질 코드 스니펫과 기사가 마음에 드십니까? 우리도 그래! 이와 같은 더 많은 기사를 보려면 30 seconds of code을 방문하거나 일일 JavaScript, React 및 Python 스니펫을 보려면 팔로우하세요! 👨‍💻

좋은 웹페이지 즐겨찾기