Proxy 是 JavaScript 提供的一个构造函数,用于创建一个“代理对象”。这个代理对象可以拦截目标对象的基本操作,例如读取属性、赋值、删除、调用函数等。通过它,我们可以修改或扩展对象的默认行为。
Proxy 的基本语法
const proxy = new Proxy(target, handler);
- target:被代理的目标对象,可以是任何类型的对象(如普通对象、数组、函数等)。
- handler:定义拦截行为的对象,其方法会在相应操作发生时被调用
Proxy 的常见用法
1. 属性拦截 (get)
拦截读取对象属性的操作
const target = {
name: "Alice" };
const proxy = new Proxy(target, {
get: (obj, prop) => {
console.log(`Accessing property "${
prop}"`);
return obj[prop];
}
});
console.log(proxy.name); // Accessing property "name" -> Alice
2. 属性赋值拦截 (set)
拦截对对象属性的赋值操作
const target =