proxy深层代理

作者: 在小白的路上越走越远 | 来源:发表于2020-09-28 15:34 被阅读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);

相关文章

网友评论

    本文标题:proxy深层代理

    本文链接:https://www.haomeiwen.com/subject/sryeuktx.html