Proxy 和 Object.defineProperty区别

proxy的含义是代理,一般叫它拦截器,可以拦截对象上的一个操作,用法如下:通过new的方式创建对象,第一个参数是被拦截的对象,第二个参数是对象操作的描述,实例化以后返回一个新的对象,当我们对这个新的对象进行操作时就对调用我们描述中对应的方法

new Proxy(target,{
    get(target,property){},
    set(target,property){},
    deleteProperty(target,property){}
})

区别:
1、Object.defineProperty只能监听属性的读写,而Proxy 除了读写以外还可以监听属性的删除方法的调用
2、 proxy 可以直接监听数组的变化
3、proxy以非侵入的方式监管对象的读写而 defineProperty 需要按照特定的方式定义对象的属性

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容