1. 冻结对象
Object.freeze()
'use strict'
let initialData = {a: 123};
initialData.a = 234;
console.log(initialData.a);
Object.freeze(initialData);
/**
* 严格模式下会报错
* TypeError: Cannot assign to read only property 'a' of object '#<Object>'
*/
initialData.a = 345;
console.log(initialData.a);
// 结果
234
234
2. 冻结判断
Object.isFrozen()
// Object.isFrozen()
Object.isFrozen(initialData); // true
3. 深冻结和浅冻结
上述的冻结方式只能冻结一层
let initialData2 = {a: {b: 123}};
Object.freeze(initialData);
initialData2.a.b = 345;
console.log(initialData2.a.b); // 345
Object.isFrozen(initialData2); // true
冻结全部需要更深层次的操作。