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

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

<시간/>

Object.freeze()의 차이점 및 상수 전자는 가변성 을 방지합니다. 반면 후자는 변경성을 방지하지 않습니다. 더 나은 이해를 위해 개별적으로 논의하겠습니다.

상수

상수 동작은 let과 동일합니다. . const 를 사용하여 변수가 정의되면 재할당할 수 없습니다. . Const 로 선언된 변수 차단 범위입니다. 기능 범위가 아님 var에 의해 정의됨 .

const 의 주요 단점 핵심 단어는 개체가 변동성을 방지하는 것을 방지하지 않는다는 것입니다. . 객체가 const를 사용하여 정의된 경우에도 객체의 속성을 변경할 수 있습니다. . 이것을 가변성이라고 합니다. . const를 사용하여 할당된 변수는 다시 할당할 수 없다는 일반화가 있습니다. 그러나 const를 사용하여 객체를 정의하는 경우 , 속성을 변경할 수 있습니다. 이 시나리오에서는 가변성을 방지하기 위해 const를 피하는 것이 좋습니다. .

예시

다음 예에서 처음에 속성 'country'의 값은 "India"입니다. 그러나 나중에 const를 사용하여 변수를 할당하더라도 값이 England로 변경됩니다.

<html>
<body>
<script>
   const person = {
      "name" : "Suresh",
      "Country" : "India",
      "Designation" : "Mayor"
   }
   person.Country = "England"
   document.write(person.Country);
</script>
</body>
</html>

출력

England

Object.freeze()

이 메서드는 불변성을 제공합니다. . 개체가 고정되면 , 속성을 변경할 수 없습니다.

다음에서는 불변성 때문에 속성 "country"의 값이 "India"에서 "England"로 변경되더라도 "India"라는 가치는 그 자리를 유지합니다.

예시

<html>
<body>
<script>
   const person = {
      "name" : "Suresh",
      "Country" : "India",
      "Designation" : "Mayor"
   }
   Object.freeze(person);
   person.Country = "England"
   document.write(person.Country);
</script>
</body>
</html>

출력

India