Object.prototype全局注入方法是否应该在开发中尽量避免?

项目中需要平凡判断对象是否为空, 将isEmpty的方法通过Object.prototype注入,使所有对象都有isEmpty方法,随调随用.看似非常方便,会不会有隐患呢?

Object.defineProperty(Object.prototype, "isEmpty", {
  enumerable: false,
  configurable: false,
  get: function () {
    return function () {
      for (let key in this) {
        return false
      }
      return true
    }
    
  }
})
已解决 悬赏分:60 - 解决时间 2022-01-17 11:35
反对 0举报 0 收藏 0

回答2

最佳
  • @

    频繁使用和挂载原型上是两个概念,开发中需要理清这两个概念,频繁使用应该是抽出函数,挂载原型上适合全部都需要,又或者这个是最后的解决方案和最优的。举个例子,例如 vue 中监听数组的变化,就在原来的原型的基础上,又做了一层处理,手动监听数组,这类场景才适合挂载原型上。

    支持 0 反对 0 举报
    2022-01-16 16:44
  • @

    看个人喜好,我还是推荐按需引入的方式

    支持 0 反对 0 举报
    2022-01-16 17:13