JavaScript中Object.freeze()和const之间的主要区别是什么?

Object.freeze()和const 之间的区别在于,前者可以防止可变性, 而后者则不能防止可变性。为了更好地理解,让我们单独讨论它们。

康斯特

const 行为与let相同。一旦使用const 定义了任何变量,就无法重新分配它。由Const 声明的变量是块范围的,而不是var定义的函数范围的。

const 关键字的主要缺点是它不能防止对象的可变性。即使使用const定义了该对象,也可以更改其属性。这称为可变性。有一个概括,使用const分配的任何变量都不能再次重新分配。但是,当使用const定义对象时,可以更改其属性。在那种情况下,最好避免使用const来防止变异。

示例

在下面的示例中,属性“ country”的值最初是“印度”。但是后来,即使使用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()

这种方法提供了不变性。一旦冻结了任何对象,就无法更改其属性。 

在下文中,即使将属性“国家”的值从“印度”更改为“英国”,由于不可变性 ,值“印度”仍保留其位置。

示例

<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

以上是 JavaScript中Object.freeze()和const之间的主要区别是什么? 的全部内容, 来源链接: utcz.com/z/338153.html

回到顶部