在 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的屬性時,攔截器會執行相應的代碼。
