用于创建一个代理对象,通过它可以拦截并自定义对目标对象的基本操作,如属性访问、赋值、枚举、函数调用等。
示例:
let target = {
name: "John",
age: 30,
};
let handler = {
get: function (target, property) {
console.log(`Getting ${property}`);
return target[property];
},
set: function (target, property, value) {
console.log(`Setting ${property} to ${value}`);
target[property] = value;
return true;
},
};
let proxy = new Proxy(target, handler);
console.log(proxy.name); // Getting name
// John
proxy.age = 35; // Setting age to 35