Object.freeze() làm object bất biến: không thể thêm/sửa/xóa thuộc tính, không thể thay đổi prototype.
Ví dụ
const frozenObj = {value1: 10, value2: 20};
Object.freeze(frozenObj);
// Thử thay đổi
frozenObj.value1 = 100;
frozenObj.newProp = "test";
delete frozenObj.value2;
console.log("value1:", frozenObj.value1); // Vẫn là 10
console.log("newProp:", frozenObj.newProp); // undefined
console.log("value2:", frozenObj.value2); // Vẫn là 20
Cách chạy
node demo.js
Kết quả
value1: 10
newProp: undefined
value2: 20
Lưu ý: freeze() chỉ shallow (1 cấp). Object lồng bên trong vẫn có thể sửa. Dùng deepFreeze đệ quy cho deep freeze.
Strict mode: Trong strict mode, gán giá trị cho frozen object sẽ ném TypeError.