Proxy 和 Object.defineProperty區別

proxy的含義是代理,一般叫它攔截器,可以攔截對象上的一個操作,用法如下:通過new的方式創建對象,第一個參數是被攔截的對象,第二個參數是對象操作的描述,實例化以后返回一個新的對象,當我們對這個新的對象進行操作時就對調用我們描述中對應的方法

new Proxy(target,{
    get(target,property){},
    set(target,property){},
    deleteProperty(target,property){}
})

區別:
1、Object.defineProperty只能監聽屬性的讀寫,而Proxy 除了讀寫以外還可以監聽屬性的刪除方法的調用
2、 proxy 可以直接監聽數組的變化
3、proxy以非侵入的方式監管對象的讀寫而 defineProperty 需要按照特定的方式定義對象的屬性

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容