JavaScript-冻结对象

文章目录

          • 1. 冻结对象
          • 2. 冻结判断
          • 3. 深冻结和浅冻结

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 '#'
 */
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

冻结全部需要更深层次的操作。

你可能感兴趣的:(学习,javascript)