冻结对象是封印对象更进一步的操作
冻结的对象
使用 Object.freeze()
来冻结对象,使用 Object.isFrozen()
判读对象是否被冻结
const anObject = {
name: 'object',
};
console.log(Object.isExtensible(anObject)); // true
console.log(Object.isSealed(anObject)); // false
console.log(Object.isFrozen(anObject)); // false
// 开始冻结
Object.freeze(anObject);
console.log(Object.isExtensible(anObject)); // false
console.log(Object.isSealed(anObject)); // true
console.log(Object.isFrozen(anObject)); // true
// 对属性写入新的值
anObject.name = 'object2';
console.log(anObject.name); // object, 冻结的对象无法对属性进行写操作
一般来说,冻结对象的操作很少会被用到,冻结的对象只会用来做某个时间点的快照