Proxy 的優勢如下:
- Proxy 可以直接監聽對象而非屬性;
- Proxy 可以直接監聽數組的變化;
- Proxy 有多達 13 種攔截方法,不限於 apply、ownKeys、deleteProperty、has 等等是 Object.defineProperty 不具備的;
- Proxy 返回的是一個新對象,我們可以只操作新的對象達到目的,而 Object.defineProperty 只能遍歷對象屬性直接修改;
- Proxy 作為新標准將受到瀏覽器廠商重點持續的性能優化,也就是傳說中的新標准的性能紅利;
Object.defineProperty 的優勢如下:
- 兼容性好,支持 IE9,而 Proxy 的存在瀏覽器兼容性問題,而且無法用 polyfill 磨平,因此 Vue 的作者才聲明需要等到下個大版本( 3.0 )才能用 Proxy 重寫。
