Object.freeze
是 JavaScript 中的一个方法,它可以冻结一个对象,使其不可修改。冻结后的对象不能添加、删除或修改属性或方法。如果尝试修改,将会抛出错误或静默失败(在严格模式下)。
示例:
const obj = {
name: 'Alice',
age: 20
};
Object.freeze(obj);
obj.name = 'Bob'; // 抛出错误或静默失败
obj.gender = 'female'; // 抛出错误或静默失败
delete obj.age; // 抛出错误或静默失败
需要注意的是,Object.freeze
只能冻结对象本身的属性和方法,而不能冻结对象内部的属性和方法。如果对象内部还有对象,那么这些对象仍然可以被修改。
示例:
const obj = {
name: 'Alice',
age: 20,
info: {
gender: 'female'
}
};
Object.freeze(obj);
obj.name = 'Bob'; // 抛出错误或静默失败
obj.info.gender = 'male'; // 可以修改
如果需要冻结对象内部的所有属性和方法,可以使用递归的方式进行冻结。