在 JavaScript 中,使用 'const' 关键字声明的变量是常量,它们的值在声明后不能被重新赋值。然而,对于对象类型的变量,'const' 只保证变量本身不可重新赋值,而不保证变量所引用的对象的属性不可修改。

当使用 'const' 声明一个对象时,该对象的引用是不可变的,也就是说,不能将该变量指向另一个对象。但是,可以修改对象本身的属性和方法。

例如:

const person = {
  name: 'John',
  age: 30
};

person.name = 'Jane'; // 可以修改属性值
person.age = 25;

console.log(person); // 输出: { name: 'Jane', age: 25 }

在上面的例子中,尽管 'person' 是一个常量,但是可以修改 'person' 对象的 'name' 和 'age' 属性的值。这是因为 'const' 只保证变量本身不可重新赋值,而不保证对象的属性不可修改。

如果想确保对象的属性不可修改,可以使用 'Object.freeze()' 方法将对象冻结,使其属性变为只读。例如:

const person = Object.freeze({
  name: 'John',
  age: 30
});

person.name = 'Jane'; // 无效,无法修改属性值

console.log(person); // 输出: { name: 'John', age: 30 }

在上面的例子中,使用 'Object.freeze()' 方法冻结了 'person' 对象,使其属性变为只读,无法修改属性的值。

JavaScript 中 const 对象属性的修改机制

原文地址: https://www.cveoy.top/t/topic/qkM7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录