const person = {
name: "Alice",
age: 25
};
// 修改属性
person.name = "Bob";
person.age = 30;
console.log(person); // 输出: { name: "Bob", age: 30 }
// 添加新属性
person.gender = "female";
console.log(person); // 输出: { name: "Bob", age: 30, gender: "female" }
// 删除属性
delete person.age;
console.log(person); // 输出: { name: "Bob", gender: "female" }
在这个示例中,虽然 person
是用 const
声明的对象,但我们依然可以修改其属性的值、添加新属性、或删除已有属性。
const
关键字只能保证引用地址不变,不可重新赋值:
const person = { name: "Alice" };
person = { name: "Bob" }; // 会抛出 TypeError: Assignment to constant variable.
如果你希望对象的内容也是不可变的,可以使用 Object.freeze()
方法将对象冻结:
const person = { name: "Alice" };
Object.freeze(person);
person.name = "Bob"; // 无效修改,person 仍然是 { name: "Alice" }
console.log(person.name); // 输出: "Alice"
使用 Object.freeze()
冻结对象后,该对象的属性将不能被修改、添加或删除。