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()防止可变性。
Its syntax is -: Object.freeze(object) For example -: const a = 10; Object.freeze() const 1. Object freeze() method helps in preventing existing properties from being changed const is a keyword that was introduced in ES6 (2015). 2. It is helpful if we want some variable not to be declared twice. 3. It takes one parameter as an Object. 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.