const 用于声明一个只读的变量引用,而 object.freeze() 用于冻结对象使其属性不可修改。两者结合使用可以确保对象本身及其内部数据都不会被意外更改。

为什么 const 不能阻止对象属性被修改
const 仅保证变量标识符指向的内存地址不变,不保护对象内容。如果直接操作对象属性,依然可以成功修改值。

const user = { name: 'Alice' };
user.name = 'Bob';
console.log(user.name); // BobObject.freeze() 如何彻底锁定对象
Object.freeze() 会递归地将对象的所有自有属性标记为不可配置、不可枚举且只读。任何尝试修改、删除或添加属性的操作都会静默失败或在严格模式下抛出异常。
你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型
立即学习“Java免费学习笔记(深入)”;

const config = Object.freeze({ theme: 'dark' });
config.theme = 'light';
delete config.theme;
config.newProp = true;
console.log(config.theme); // darkObject.freeze() 对嵌套对象的限制
当对象包含嵌套对象时,Object.freeze() 仅冻结顶层属性。内部的嵌套对象仍然是可变的,这可能导致意外的状态变更。
const data = Object.freeze({ info: { age: 25 } });
data.info.age = 30;
console.log(data.info.age); // 30

















