Object.seal()의 차이점 및 Object.freeze() 전자는 객체의 기존 속성을 변경할 수 있지만 후자는 객체에 대한 변경을 허용하지 않습니다. Object.freeze() 개체를 면역으로 만듭니다. 무엇이든, 미세한 변화도 바꿀 수 없습니다.
Object.seal()
Object.seal() 메소드는 기존 속성의 삭제를 방지하지만 외부 변경으로부터 기존 속성을 보호할 수는 없습니다.
예
다음 예에서는 Object.seal() 때문에 메서드 사용자 정의 속성 "prop1"은 삭제 메서드를 적용해도 삭제되지 않고 속성 "prop1"의 값만 업데이트됩니다.
<html> <body> <script> var object1 = { prop1: 1 }; Object.seal(object1); object1.prop1 = 2; // value got changed delete object1.prop1; document.write(object1.prop1); // it gives value as 2 because of seal. </script> </body> </html>
출력
2
Object.freeze()
Object.seal()의 기능 외에도 , Object.freeze() 메서드는 개체의 기존 속성에 대한 미세한 변경도 허용하지 않습니다.
예시
<html> <body> <script> var object1 = { prop1: 1 }; Object.freeze(object1); object1.prop1 = 2; // value got updated delete object1.prop1; // value got deleted document.write(object1.prop1); // it gives 1 as output despite value updated to 2 </script> </body> </html>
출력
1