Proxy 与 Object.defineProperty 优劣对⽐
Proxy的优势如下:
-
Proxy可以直接监听对象而非属性;
-
Proxy可以直接监听数组的变化;
-
Proxy有多达13种拦截方法,不限于apply、ownKeys、deleteProperty、has等等是Object.defineProperty不具备的;
-
Proxy返回的是一个新对象,我们可以只操作新的对象达到目的,而Object.defineProperty只能遍历对象属性直接修改;
-
Proxy作为新标准将受到浏览器厂商重点持续的性能优化,也就是说传说中的新标准的性能红利;
Object.defineProperty的优势如下:
- 兼容性好,支持IE9,而Proxy的存在浏览器兼容性问题,而且无法用polyfill磨平.因此 Vue 的作者才声明需要等到下个大版本( 3.0 )才能用 Proxy 重写。