Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

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

<시간/>

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