完全凝结js对象

function completelyFreezeObj = (obj) => {
  if(Object.prototype.toString.call(obj) != "[object Object]"){
      console.error("obj不是对象");
      return;
  }
  Object.freeze(obj);
  Object.keys(obj).forEach( (key, i) => {
    if (Object.prototype.toString.call(obj[key]) == "[object Object]") {
      completelyFreezeObj(obj[key]);
    }
  });
};

应用递归不仅凝结对象自身,同时凝结它的属性值为对象的属性,如许不管是let声明的对象照样var声明的对象,都将不能修正此对象的任何属性。
Object.keys()要领返回对象中可罗列属性构成的数组。

    原文作者:zero
    原文地址: https://segmentfault.com/a/1190000019411438
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞