1.proxy与defineproperty的区别
数据劫持两个缺点:
无法监听通过索引修改数组的值的变化
无法监听object 也就是对象的值的变化
Object.defineProperty 无法监控到数组下标的变化,导致通过数组下标添加元素,不能实时响应;
Object.defineProperty只能劫持对象的属性,从而需要对每个对象,每个属性进行遍历,如果,属性值是对象,还需要深度遍历。
Proxy两个优点:
Proxy 可以劫持整个对象,并返回一个新的对象
Proxy 不仅可以代理对象,还可以代理数组。还可以代理动态增加的属性
2.Proxy 相比于 defineProperty 的优势
数组变化也能监听
不需要深度遍历监听