JavaScript에서 Object.freeze()와 Object.seal()의 차이점은 무엇입니까?
3427 단어 javascriptwebdevprogramming
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 스니펫을 보려면 팔로우하세요! 👨💻
Reference
이 문제에 관하여(JavaScript에서 Object.freeze()와 Object.seal()의 차이점은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chalarangelo/what-is-the-difference-between-objectfreeze-and-objectseal-in-javascript-4eij텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)