proxy的含義是代理,一般叫它攔截器,可以攔截對象上的一個操作,用法如下:通過new的方式創建對象,第一個參數是被攔截的對象,第二個參數是對象操作的描述,實例化以后返回一個新的對象,當我們對這個新的對象進行操作時就對調用我們描述中對應的方法
new Proxy(target,{
get(target,property){},
set(target,property){},
deleteProperty(target,property){}
})
區別:
1、Object.defineProperty只能監聽屬性的讀寫,而Proxy 除了讀寫以外還可以監聽屬性的刪除方法的調用
2、 proxy 可以直接監聽數組的變化
3、proxy以非侵入的方式監管對象的讀寫而 defineProperty 需要按照特定的方式定義對象的屬性