回顾Object.freeze()

Object.freeze() 方法可以冻结一个对象。

一个被冻结的对象再也不能被修改
冻结了一个对象则不能向这个对象添加新的属性不能删除已有属性不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值

实现Object.freese

  1. Object.deepFreeze = function (o){
  2. // Objcet.keys() 拿不到不可枚举的属性
  3. var _keys = Object.getOwnPropertyNames(o);
  4. if(_keys.length) {
  5. _keys.forEach(function (k){
  6. var _value = o[k];
  7. if(typeof _value === 'object' && _value !== null ){
  8. Object.deepFreeze(_value);
  9. }
  10. })
  11. }

Object.freeze() 方法和 const 区别

const, 定义了无法重新分配的变量。
Object.freeze() 将一个对象作为参数,并返回与不可变对象相同的对象。这意味着不能添加,删除或更改对象的任何属性。

object.freeze 、object.seal区别

介绍一下let const Object.freeze() ,set和get