定義
攔截對另一個物件的操作。
語法
const p = new Proxy(target, handler);
target: 要使用proxy的目標。
handler: 代理p的執行。
範例
let target = { message: "Hello World!" };
let handler = {
get: function(target, prop, receiver) {
console.log('讀取屬性: ${prop}');
return target[prop] == null ? "屬性不存在" : target[prop];
}};
let proxy = new Proxy(target, handler);
console.log(proxy.message);
console.log(proxy.massage);
分別印出:
Hello World!
讀取屬性: massage
屬性不存在
target有一個屬性是message
那handler是要讀取屬性並且回傳
所以當proxy代理時,
messsage這個屬性存在, 所以印出來.
而massage不存在, 就是印false的答案.