JavaScript 中 const 对象属性的修改机制
在 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' 对象,使其属性变为只读,无法修改属性的值。
原文地址: https://www.cveoy.top/t/topic/qkM7 著作权归作者所有。请勿转载和采集!