(自用面试题)使用Object.defineProperty()方法来进行数据劫持的缺点是什么?

83 阅读1分钟

在对一些属性进行操作时,使用这种方法无法拦截,如通过下标方式修改数组元素准确的来说,对于数组而言,大部分操作都是拦截不到的,只是Vue内部通过重写函数的方式解决了这个问题。
在Vue3.0中已经不使用这种方式了,而是通过使用Proxy对对象进行代理,从而实现数据劫持。使用Proxy的好处是它可以完美的监听到任何方式的数据改变,唯一的缺点是兼容性的问题,因为Proxy是ES6的语法。