您的位置:首页 > 娱乐 > 明星 > JavaScript 手写仿freeze

JavaScript 手写仿freeze

2024/12/23 16:25:44 来源:https://blog.csdn.net/weixin_43659550/article/details/141433831  浏览:    关键词:JavaScript 手写仿freeze

实现一个仿Object.freeze功能的"_objectFreeze"函数,该函数可以冻结一个对象,一个被冻结的对象不能被修改、不能添加新的属性、不能删除已有属性,核心步骤有:

  1. 进入对象参数的遍历体中
  2. 判断当前对象参数是否为普通对象或数组
  3. 如果是普通对象或数组,则递归调用该函数,函数参数为当前遍历项
  4. 如果不是,则直接设置该参数的可写性为false
  5. 最后通过Object.seal函数封闭该对象,阻止添加新属性并将所有现有属性标记为不可配置
const _objectFreeze = object => {for(prop in object) {const type = Object.prototype.toString.call(object[prop])if(type === '[Object object]' || type === '[Object array]') {_objectFreeze(object[prop])} else {Object.defineProperty(object, prop, {writable: false})}}Object.seal(object)
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com