Object的方法Object.freeze()和Object.assign()

Object.assign( this , {data中同名变量}) 给data变量赋值

原理:this是一个对象,包含data中变量和方法等一切可以this.调用的属性
对象合并时,相同的键名后面对象会覆盖前对象

Object.freeze() 冻结一个对象

  • 跟const常量一样,只不过,const声明简单类型的值不能修改,对象却是可以修改的,
    所以,如果你想禁止一个对象的修改就可以用Object.freeze()
  • 浅冻结:对象的属性若是对象,是可以修改属性的属性的
  • 深冻结
function deepFreeze(obj) {
    
    
  // 获取定义在obj上的属性名
  var propNames = Object.getOwnPropertyNames(obj);
  // 在冻结自身之前冻结属性
  propNames.forEach(function(name) {
    
    
    var prop = obj[name];

    // 如果prop是个对象,冻结它
    if (typeof prop == 'object' && prop !== null)
      deepFreeze(prop);
  });
  return Object.freeze(obj);
}

猜你喜欢

转载自blog.csdn.net/weixin_43848576/article/details/116916584