首页 > 编程知识 正文

proxy代理服务器地址,proxy代理配置

时间:2023-05-03 13:29:23 阅读:225787 作者:975

Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设—层拦截,外部所有的访问都必须先通过这层拦截, 因此提供了—种机制,可以对外部的访问进行过滤和修改。这个词意为代理,在这里可以表示由它来”代理”某些操作,译为”代理器”。也可以理解为—个针对对象各种行为的钩子。 

语法: let p = new Proxy(target, handler) //target代表需要添加代理的对象 //handler吊来自定义对象中的橾作 校验数据 let Data = { count: 0, amount: 1234, total: 14 }let proxy = new Proxy(Data, { set(target, key, value, proxy) { if (typeof value!=='number') { throw Error("only be numbers"); } return Reflect.set(target, key, value, proxy); } })//抛出错误,Uncaught Error: only be numbersproxy.count= "foo"; //赋值成功proxy.count = 333; 统计函数调用次数 function orginFunction () {}let proxy = new Proxy(orginFunction, { apply (target, thisArg, argumentslist) { log(XXX) return target.apply(thisArg, argumentsList) }}) Proxy支持拦截的操作

get 

拦截对象属性的读取

set 

拦截对象属性的设置

has 

拦截propKey in proxy的操作

deleteProperty 

拦截delete proxy[propKey]的操作

ownKeys 

拦截Object.keys()、for…in循环

getOwnPropertyDescriptor 

0bject.getOwnPropertyDescriptor

defineProperty 

拦截Object.defineProperty

preventExtensions 

拦截Object.preventExtensions

getPrototypeOf 

拦截Object.getPrototypeOf

isExtensible 

拦截0bject.isExtensible

setPrototypeOf 

拦截0bject.setPrototypeOf

apply(target, object, args) 

拦截Proxy实例作为函数调用的操作

construct(target, args) 

拦截Proxy实例作为构造函数调用的操作

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。