javascript如何实现代理_ proxy对象怎么用

admin 百科 15
Proxy 是 JavaScript 用于拦截并自定义对象基本操作的语言级代理机制,支持 get/set/has/ownKeys/deleteProperty/apply 等 trap,适用于响应式、验证等场景,但不能代理原始值且存在性能与相等性限制。

javascript如何实现代理_ proxy对象怎么用-第1张图片-佛山资讯网

JavaScript 的 Proxy 对象用于创建一个代理,拦截并自定义对目标对象的基本操作(比如读取、赋值、枚举、函数调用等)。它不是用来“代理网络请求”的,而是 JavaScript 语言层面的“对象行为代理”,常用于数据响应式、验证、日志、访问控制等场景。

Proxy 基本结构:target + handler

创建 Proxy 需要两个参数:

  • target:要代理的原始对象(可以是普通对象、数组、函数,甚至 null)
  • handler:一个配置对象,定义各种“陷阱”(traps),即你想拦截的操作

示例:拦截属性读取和设置

const target = { price: 199, name: 'iPhone' };
const proxy = new Proxy(target, {
  get(obj, prop) {
    console.log(`读取 ${prop}:`, obj[prop]);
    return obj[prop];
  },
  set(obj, prop, value) {
    if (prop === 'price' && typeof value !== 'number') {
      throw new Error('price 必须是数字');
    }
    console.log(`设置 ${prop} =`, value);
    obj[prop] = value;
    return true; // 必须返回 true 表示赋值成功
  }
});

proxy.price;     // 输出:读取 price: 199 → 返回 199
proxy.price = 299; // 输出:设置 price = 299 → 成功
proxy.price = 'free'; // 报错:price 必须是数字

登录后复制

常用 trap(拦截方法)有哪些?

以下是开发中最常遇到的几个 handler 方法:

立即学习“Java免费学习笔记(深入)”;

标签: vue react javascript java app iphone proxy

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~