proxy深层代理
2020-09-28 本文已影响0人
在小白的路上越走越远
在get方法内进行递归,判断是否为对象,为对象继续递归,否则直接返回获取数值。
let obj = {
name: 'Eason',
age: 30,
happy: {
aa: '11'
}
}
let handle = {
get(target, key) {
if (Object.prototype.toString.call(target[key]) === '[object Object]') {
return new Proxy(target[key], handle)
}
return target[key] + '获取'
},
set(target, key, value) {
target[key] = value + '设置';
}
}
let proxy = new Proxy(obj, handle)
proxy.name = '9opsdsa8'
console.log(proxy.name)
proxy.happy.aa = '99iiyy'
console.log(proxy.happy.aa);