首页 > 技术文章 > 浅谈proxy

teamemory 2020-03-26 14:23 原文

let obj = {
    name: 'zj'
}

let newObj = new Proxy(obj, {
    get(target, keys) {
        return (params) => {
            return target[keys] + params
        }
    }
})

console.log(newObj.name(66)) // zj66

 

小结:

1、newObj 是一个代理或者叫拦截的对象。

2、newObj 可以代理任何对象,包括空对象。

3、如上面案例所示,newObj.name(66) 属于读的性质,则默认执行代理里面的get函数。

4、代理里面的target 代表obj , keys 代表name ,params 代表传入的参数66

其实,也就是利用代理对象的操作,来实现自己想要的结果。当然,前提是这个结果根据代理对象来的,抑或是完全跟代理对象没关系,毕竟被代理的对象完全可以为空。

推荐阅读