首页 > 其他分享 >Proxy

Proxy

时间:2024-06-12 19:12:10浏览次数:19  
标签:对象 35 参数 Proxy 拦截 proxy

1.概述

Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。

Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。

 

ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。

 

var proxy = new Proxy(target, handler);

 

Proxy 对象的所有用法,都是上面这种形式,不同的只是 handler 参数的写法。其中,new Proxy() 表示生成一个 Proxy 实例,target 参数表示所要拦截的目标对象,handler 参数也是一个对象,用来定制拦截行为。

下面是一个拦截读取属性行为的例子。

var proxy = new Proxy({}, {
   get: function(target, propKey) {
       return 35;
   }
});

proxy.time // 35
proxy.name // 35
proxy.title // 35

上面代码中,作为构造函数,Proxy 接受两个参数。第一个参数是所要代理的目标对象(上例是一个空对象),即如果没有 Proxy 的介入,操作原来要访问的就是这个对象;第二个参数是一个配置对象,对于每一个被代理的操作,需要提供一个对应的处理函数,该函数将拦截对应的操作。比如,上面代码中,配置对象有一个 get 方法,用来拦截对目标对象属性的访问请求。get 方法的两个参数分别是目标对象和所要访问的属性。可以看到,由于拦截函数总是返回 35,所以访问任何属性都得到 35 。

 

注意,要使得 Proxy 起作用,必须针对 Proxy 实例(上例是 proxy 对象)进行操作,而不是针对目标对象(上例是空对象)进行操作。

 

标签:对象,35,参数,Proxy,拦截,proxy
From: https://www.cnblogs.com/ladybug7/p/18244541

相关文章

  • node使用http-proxy-middleware做代理,解决跨域问题
    constexpress=require('express')consthistory=require('connect-history-api-fallback')const{createProxyMiddleware}=require('http-proxy-middleware')letapp=express()app.use(history())////匹配api开头的请求,实际转发的请求保a......
  • zabbix分布式proxy
    1.为什么要学zabbix-proxy2.zabbix-proxy工作流程zabbix-proxy作用就是临时存储数据,且转发,给zabbix-server,也就是采集的监控数据,中转站。数据流走向就是zabbix-agent>zabbix-proxy>zabbix-server3.zabbix-proxy部署1.部署一个zabbix-proxy机器2.设置zabbix元......
  • Windows11系统WmsProxyStub.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WmsProxyStub.dll文件(挑选合适的版本文件)......
  • Spring - AOP - @EnableAspectAutoJAutoProxy 与其属性exposeProxy,proxyTargetClass
    这三个属性是Spring框架中与AOP(面向切面编程)相关的配置。 EnableAspectJAutoProxy:这是一个注解,用于开启Spring对AspectJ的自动代理功能。  exposeProxy:这个属性用于配置是否需要将代理对象暴露给AOP创建的Subject,这样就可以在代理对象内部通过AopContext.currentProxy......
  • [Proxy] 使用 Charles 对 Android 应用进行 HTTPS 数据抓包
    抓包工具Charleshttps://www.charlesproxy.com/操作步骤1.在电脑上安装Charles客户端并进行配置1.1设置ProxySetting1.2设置 SSLProxingSetting1.3重启Charles客户端2.在手机上安装Charles证书2.1将手机与电脑连接到同一WIFI网络2.2设置手机WIF......
  • nginx如果上层还有其他 slb 需要使用 $proxy_add_x_forwarded_for 获取真实 ip
    #Todo:Maybecanautodiscoveryupstreamhttp_server{ip_hash;serverweb:8080;#这个是可以通过容器访问,外部访问是80端口#serverHOST2:80;#另外的要写真实IP}server{listen80;#listen[::]:80;#server_namedemo.jumpserver.org;#取消注释并......
  • 如何查看、设置 Mac Terminal Proxy
    如何查看、设置MacTerminalProxy代理。通过查询当前代理信息,并在命令行导出HTTP_Proxy变量即可。查看代理信息运行相关代理软件之后,一般会在系统层面直接替换当前的代理配置,如下:命令行获取参考:https://superuser.com/questions/48480/how-can-i-get-mac-os-xs-proxy-in......
  • k8S的kube-proxy相关ipvs
     ipvsadm命令没想到自己之前二进制部署的,也是ipvs代理模式node2上没有装ipvs,也看不了一些ipvs规则 node1上安装ipvsadm,然后就可以看的k8s添加的规则了yuminstallipvsadmbrctl命令k8snode上默认也没有装上这个软件,不过可以安装上,看看容器的网络情况[root@mcwk8s05......
  • Nginx 实战-02-nginx proxy_pass 服务代理访问 使用笔记 ubuntu nodejs
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • Nginx proxy_pass 使用详解
    在 nginx 中配置 proxy_pass 代理转发时,如果在 proxy_pass 后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。1.多种配置访问验证假设下面四种情况分别用http://192.168.1.1/proxy/test.html进行访问。......