ES6-Proxy,代理
Posted ananiah
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6-Proxy,代理相关的知识,希望对你有一定的参考价值。
proxy 代理 Es6 增强 对象和函数(方法)
Proxy用于修改某些操作的默认行为,即对编程语言层面进行修改,属于“元编程”,
Proxy意思为“代理”,即在访问对象之前建立一道“拦截”,任何访问该对象的操作之
前都会通过这道“拦截”,即执行Proxy里面定义的方法。
声明 Proxy 第一个大括号放对象体 第二个放预处理机制 get set apply
let pro = new Proxy( //方法体 add:function(val) return val+100; , name:‘ananiah‘ , //预处理机制 get set apply //get 得到属性前预处理 get:function(target,key,property) console.log(target); //add: ƒ, name: "ananiah" console.log(key); //name return target[key] , set:function(target,key,value,receiver) console.log(`setting $key = $value`); //setting name = 代理 //返回之后打印出来的才会改变 return target[key] = value + ‘123‘; ); console.log(pro.name); pro.name=‘代理‘; console.log(pro.name); //name 代理123 //apply let target = function() return ‘ananiah‘; let handler = apply(target,ctx,args) console.log(‘apply start‘); return Reflect.apply(...arguments); //apply start ; let proxx = new Proxy(target,handler); //调用 console.log(proxx()) //ananiah
以上是关于ES6-Proxy,代理的主要内容,如果未能解决你的问题,请参考以下文章
设计模式 结构型模式 -- 代理模式(动态代理(CGLIB动态代理)三种代理的对比(静态代理动态代理(JDK代理和CGLIB代理)优缺点使用场景))