项目中需要平凡判断对象是否为空, 将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
}
}
})
频繁使用和挂载原型上是两个概念,开发中需要理清这两个概念,频繁使用应该是抽出函数,挂载原型上适合全部都需要,又或者这个是最后的解决方案和最优的。举个例子,例如
vue
中监听数组的变化,就在原来的原型的基础上,又做了一层处理,手动监听数组,这类场景才适合挂载原型上。