本文介绍: Proxy一个用于创建对象代理对象,它可以拦截和自定义对象基本操作比如属性查找赋值枚举函数调用等。Proxy 的用途有很多,比如日志记录验证格式化内存优化等。Proxy 是一个强大的特性,它可以我们在 JavaScript创建使用对象代理实现数据安全传输动态修改、懒加载功能。Proxy 提供了一些简单易用的捕捉器,让我们可以方便地拦截和自定义对象行为。Proxy 还可以和 Reflect 对象结合使用实现对象默认行为

前言

Proxy 是一个用于创建对象代理对象,它可以拦截和自定义对象的基本操作,比如属性查找、赋值、枚举函数调用等。Proxy 的用途有很多,比如日志记录验证格式化内存优化等。

如何创建 Proxy?

创建一个 Proxy,你需要提供两个参数targethandlertarget 是要被代理的原始对象,handler一个包含各种捕捉器(trap)的对象,它定义了代理的行为。例如,下面的代码创建一个 Proxy,它会在访问 target 的任何属性时,都返回 “world”。

const target = {
  message1: "hello",
  message2: "everyone",
};

const handler = {
  get(target, prop, receiver) {
    return "world";
  },
};

const proxy = new Proxy(target, handler);

console.log(proxy.message1); // world
console.log(proxy.message2); // world

Proxy 提供了哪些捕捉器?

Proxy 提供了很多捕捉器,可以拦截对象的各种操作,比如 getsethasdeleteProperty、apply、construct 等。Proxy 还可以和 Reflect 对象配合使用,Reflect 对象提供了一些与 Proxy 捕捉器同名的方法,它们可以实现对象的默认行为

例如,下面的代码创建一个 Proxy,它会在访问 targetmessage2 属性时,返回 “world”,其他属性则保持原样。

const target = {
  message1: "hello",
  message2: "everyone",
};

const handler = {
  get(target, prop, receiver) {
    if (prop === "message2") {
      return "world";
    }
    return Reflect.get(...arguments);
  },
};

const proxy = new Proxy(target, handler);

console.log(proxy.message1); // hello
console.log(proxy.message2); // world

总结

Proxy 是一个强大的特性,它可以让我们在 JavaScript创建使用对象代理,实现数据安全传输动态修改、懒加载功能。Proxy 提供了一些简单易用的捕捉器,让我们可以方便地拦截和自定义对象的行为。Proxy 还可以和 Reflect 对象结合使用,实现对象的默认行为

原文地址:https://blog.csdn.net/olderandyanger/article/details/134708411

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_19245.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注