Proxy 与Object.defineProperty
缺点:Object.defineProperty的缺陷,无法监听数组变化。
vue的hack实现:定义更改数组方法字段 ['push','pop','shift','unshift','splice','sort','reverse'],经过判断实现。
区别:
Proxy可以直接监听对象而非属性
Proxy直接可以劫持整个对象,并返回一个新对象,不管是操作便利程度还是底层功能上都远强于Object.defineProperty。
Proxy可以直接监听数组的变化
Proxy有多达13种拦截方法,不限于apply、ownKeys、deleteProperty、has等等是Object.defineProperty不具备的。