JavaScript Proxy 是用于创建对象代理的构造函数,通过 handler 中的 traps 拦截属性访问、修改等操作;支持 get、set、has 等常用陷阱,广泛应用于响应式系统、数据校验、API 代理等场景,但需注意嵌套对象需手动递归代理及性能开销。

JavaScript Proxy 是一个用于创建对象代理的构造函数,它能让你在访问、修改、删除对象属性等操作时插入自定义逻辑——也就是“拦截”。它不改变原对象,而是包装一层代理,所有对代理的操作都会经过你定义的“陷阱(traps)”函数处理。
Proxy 的基本用法:创建代理对象
要使用 Proxy,你需要两个参数:目标对象(target)和处理器对象(handler)。handler 里定义各种拦截方法,比如 get、set、has、deleteProperty 等。
最简单的例子是拦截读取属性:
const target = { name: 'Alice', age: 30 };
const handler = {
get(obj, prop) {
console.log(`正在读取属性: ${prop}`);
return prop in obj ? obj[prop] : '默认值';
}
};
const proxy = new Proxy(target, handler);
console.log(proxy.name); // 输出:正在读取属性: name → 'Alice'
console.log(proxy.city); // 输出:正在读取属性: city → '默认值'
登录后复制
常用拦截操作与对应 trap
每个 trap 对应一种对象操作。掌握几个高频 trap 就能覆盖大部分场景:
立即学习“Java免费学习笔记(深入)”;
标签: vue react javascript java js 处理器 proxy 日志监控
还木有评论哦,快来抢沙发吧~