Proxy 是 JavaScript 中用于拦截并自定义对象基本操作的内置构造函数,通过 target 和 handler 参数实现对 get、set 等操作的可控拦截,常用于响应式系统、验证、日志等场景。

Proxy 是 JavaScript 中用于拦截并自定义对象基本操作的内置构造函数。 它不是用来替代对象的,而是“包一层”,在访问目标对象前加一道可控的拦截逻辑。常见用途包括数据响应式(如 Vue 3)、权限控制、日志记录、验证、懒加载等。
Proxy 的基本结构
创建一个 Proxy 需要两个参数:
- target:要代理的真实对象(可以是普通对象、数组、函数,甚至另一个 Proxy)
-
handler:一个配置对象,定义各种“陷阱”(trap),即你想拦截的操作,比如
get、set、has、deleteProperty等
示例:
const obj = { name: 'Alice', age: 30 };const proxy = new Proxy(obj, {
get(target, prop) {
console.log(`读取属性: ${prop}`);
return target[prop];
},
set(target, prop, value) {
console.log(`设置 ${prop} = ${value}`);
target[prop] = value;
return true;
}
});
proxy.name; // 输出:读取属性: name → "Alice"
proxy.age = 31; // 输出:设置 age = 31
常用 trap 及使用场景
并非所有操作都需要拦截,按需选择即可:
立即学习“Java免费学习笔记(深入)”;
标签: vue react javascript java app 懒加载 ai proxy 邮箱
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~