在 JavaScript 中,Proxy
是一個特殊的物件,它允許你建立一個代理中介,用來控制對另一個物件的訪問。Proxy
可以用來攔截和定製對物件的各種操作,例如訪問屬性、設定屬性、呼叫方法等。這使得開發者能夠在物件上添加額外的邏輯,或者修改默認行為。
// 目標物件 const target = { name: 'Heisenberg', age: 50 }; // 創建一個 Proxy const proxy = new Proxy(target, { // 攔截 get 操作 get: function(target, prop, receiver) { console.log(`讀取屬性: ${prop}`); return target[prop]; }, // 攔截 set 操作 set: function(target, prop, value, receiver) { console.log(`設定屬性: ${prop} 值為 ${value}`); target[prop] = value; return true; } }); // 使用 Proxy console.log(proxy.name); // 讀取屬性: name, 輸出: Heisenberg proxy.age = 31; // 設定屬性: age 值為 50 console.log(proxy.age); // 讀取屬性: age, 輸出: 50
們使用Proxy
來建立一個代理,並定義了get
和set
兩個操作的攔截器。當我們訪問或設定proxy
的屬性時,攔截器會執行相應的代碼。