📜  JavaScript 中 Object.freeze() 和 const 的区别

📅  最后修改于: 2022-05-13 01:56:22.159000             🧑  作者: Mango

JavaScript 中 Object.freeze() 和 const 的区别

自发布以来,ES6 为 JavaScript 带来了一些新的特性和方法。这些新功能包括Object.freeze()方法和const 。有时人们会对 Object.freeze()方法和const感到困惑,但Object.freeze()const完全不同。在本文中,我们将解释这两者之间的区别。

const: const关键字创建对值的只读引用。由const关键字创建的变量是不可变的。换句话说,您不能将它们重新分配给不同的值。尝试重新分配常量变量将导致TypeError

  • 示例 1:
Javascript


Javascript


Javascript


Javascript


const关键字确保创建的变量是只读的。但这并不意味着 const 变量引用的实际值是不可变的。即使 person 变量是恒定的。但是,您可以更改其属性的值。但是您不能为 person 常量重新分配不同的值。

  • 示例 2:

Javascript

                   

Object.freeze() 方法:如果您希望 person 对象的值不可变,则必须使用Object.freeze()方法将其冻结。

  • 示例 1:

Javascript


Object.freeze()方法很浅,这意味着它可以冻结对象的属性,而不是属性引用的对象。

  • 示例 2:

Javascript


  • 但是person.address对象不是不可变的,您可以向person.address对象添加一个新属性,如下所示:
// No TypeError
person.address.country = "India";

结论:

  • const防止重新分配
  • Object.freeze()防止可变性

 Object.freeze()const
1.Object freeze() method helps in preventing existing properties from being changedconst is a keyword that was introduced in ES6 (2015).
2.

Its syntax is -:

Object.freeze(object) 

It is helpful if we want some variable not to be declared twice.
3.It takes one parameter as an Object.

For example -:

const a = 10;

4.Its return value is an object.If we define a variable with const then it cannot be reassigned.
5.It also helps in preventing the new properties to be added to the specific object.If we define a variable with const then its scope is blocked.