开发者社区> 问答> 正文

Object.defineProperty的缺陷,与Proxy的优劣对比?

已解决

Object.defineProperty的缺陷,与Proxy的优劣对比?


【精品问答】前端面试手册

【精品问答】前端面试手册之Vue篇

展开
收起
前端问答 2019-11-24 13:23:24 2028 0
1 条回答
写回答
取消 提交回答
  • 前端问答小助手
    采纳回答

    如果通过下标方式修改数组数据或者给对象新增属性并不会触发组件的重新渲染,因为Object.defineProperty不能拦截到这些操作,精确的说,对于数组而言,大部分操作都是拦截不到的,只是vue内部通过重写函数的方式解决了这个问题。

    Proxy的优势如下:

    • Proxy可以直接监听对象而非属性
    • Proxy可以直接监听数组的变化
    • Proxy有多达13种拦截方法,不限于apply/ownKeys/deleteProperty/has等,是Object.defineProperty不具备的
    • Proxy返回的是一个新对象,我们可以只操作新的对象达到目的,而Object.defineProperty只能遍历对象属性直接修改
    • Proxy作为新标准将受到浏览器厂商重点持续的性能优化

    Object.defineProperty的优势如下:

    • 兼容性好,支持IE9
    2019-11-24 14:32:18
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载