使用代理访问属性

时间:2018-05-24 16:54:51

标签: javascript

这可能与其他方法有关,但我对此非常具体。

我有一个如下所示的浏览器对象:

const browser = {
    version: {
        full: '1.2.3',
        major: 1,
        minor: 2,
        patch: 3
    }
};

访问browser.version时,应返回1.2.3

访问browser.version.major时,应返回1

我已尝试使用Proxy来执行此操作,但它不按照我想要的方式工作。

const version = {
    full: '1.2.3',
    major: 1,
    minor: 2,
    patch: 3
};

const browser = new Proxy(version, {
    get(target, key) {
        if (key === 'version') {
            return version.full;
        }
        return target[key];
    }
});

console.log(browser.version); // '1.2.3'
console.log(browser.version.minor); // undefined

0 个答案:

没有答案