ES6 Proxy的简单理解

Proxy 代理的应用很广泛 ,这一篇我着重讲解它的基础用法 

 

一  概念

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

首先先看一个例子

let persionM = {
    name: "白小纯",
    kills: "不死功",
    sex: "男"
}

let ProxyBai = new Proxy(persionM, {
    get: function (target: any, propKey) {
        console.log(target, propKey, 99, target[propKey])
        return "拦截返回的值"
    },
    set: function (target, propKey, value, receiver) {
        console.log('target:', target, ';propKey:', propKey, ';receiver:', receiver);
        return Reflect.set(target, propKey, value, receiver);
    }
})


console.log(ProxyBai.name)
//读取 对象的那么属性 会打印出来什么 
// {name: "白小纯", kills: "不死功", sex: "男"} "name" 99 "白小纯"
// 拦截返回的值 
console.log(ProxyBai.name = "setName")
//target: {name: "白小纯", kills: "不死功", sex: "男"} ;propKey: name ;receiver: Proxy {name: "白小纯", kills: "不死功", sex: "男"}
// setName

ES6 Proxy的简单理解

上面的代码给 persionM 对象设置一个拦截器 ,并重新定义了他的get 和set 方法

上一篇:【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?


下一篇:Oracle:select 或 inactive 会话语句产生锁?