Proxy 与 Object.defineProperty 优劣对比?

Proxy的优势如下

1.Proxy 可以直接监听对象而不是属性(Object.defineProperty一次只能监视一个属性,如果要监视一个对象,那么需要遍历这个对象),可以直接监听数组的变化(Object.defineProperty需要对7个核心数组进行重写才能监视数组)

2.Proxy 有多达13中拦截方法,不限于apply,ownKeys,deleteProperty等等 这些是Object.defineProperty所不具备的

3.Proxy 返回的是一个新的对象,我们可以只操作新的对象来达到目的,而Object.defineProperty 只能遍历对象属性直接修改

Object.defineProperty的优势如下

兼容性好,支持IE9,而Proxy的存在浏览器的兼容问题,而且无法用polyfill(垫片)来弥补

 
posted @ 2022-11-05 11:04  LT先生  阅读(248)  评论(0编辑  收藏  举报