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