题解 | #Proxy计数器#
Proxy计数器
http://www.nowcoder.com/practice/9911c5f8ecef4b3088ccbba397b7a984
31_Proxy计数器
本题考点:Proxy
根据题目要求,用Proxy代理一个对象,每当通过代理访问该对象拥有的属性时,“count”加1,当访问该对象没有的属性时,“count”减1,核心步骤有:
- 创建一个Proxy实例,该构造函数接收两个参数,第一个参数是被代理的对象,第二个参数是处理方法
- 在处理方法中设置“get”计算方法,该方法接收两个参数,第一个参数是被代理的对象,第二个参数是当前“get”读取的属性
- 当第二个参数在第一个参数中时,“count“加1,否则减1
参考答案:
let count = 0
const _proxy = object => {
let proxy = new Proxy(object, {
get: function(target, propKey) {
if(propKey in target) {
count ++
} else {
count --
}
}
})
return proxy
}