前言:
Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。
由于Proxy实例方法非常多,本文不一一描述,详情还请大家参考官方文档。
一、Proxy概述
Proxy 可以对目标对象的读取、赋值、函数调用等操作进行 拦截,然后 进行操作处理。它不直接操作对象,而是像代理模式,通过对对象的代理对象进行操作,在进行这些操作时,可以添加一些需要的额外操作。(可以理解成污水处理厂,它们会把污水拦下来,进行处理,然后在放出去)
定义时Proxy 要传两个参数:
(1)第一个参数是:要增强的对象或方法( target )
(2)第二个参数是:预处理的机制(也就是拦截之后进行的操作 handler)
let target = { /*目标对象的属性*/ }; //目标对象
let handler = { /*用来定制拦截后的操作*/ }; //预处理的机制
let proxy = new Proxy(target, handler); //实例化
下面让我们来简单使用一下Proxy:
let target = {name:'mikasa'}
let handle ={ get:function(target,key,property){
return target[key] + '666'
}}
let proxy = new Proxy(target, handle)
console.log(proxy.name);