JavaScript代理用法

时间:2019-03-11 19:10:07

标签: javascript es6-proxy

我正在学习ES6,并找到了一个Proxy对象。总的来说,我知道了它是如何工作的。但是我对代理使用的问题。如我所附的示例所示,代理是从用户对象创建的。要“侦听”或“捕获”代理发生的事件,我们应该使用代理对象,但这不是我想要的。有没有办法“监听”原始(用户)对象发生的事件?

let user = {};

let proxy = new Proxy(user, {
    get(target, prop) {
        alert(`Reading ${prop}`);
        return target[prop];
    }, 
});

proxy.firstName;  // Reading firstName

为清楚起见,让我们想象一下一种情况:我有一个物体,它不能正常工作。我想找出问题所在并创建一个代理。因此,接下来在代码中,我应该使用代理而不是原始的错误工作对象?因此,当我看到此问题的解决方案时,它应该可以这样工作:

let user = {} // wrong-working object
let proxy = new Proxy(user, {
    get(target, prop) {
        alert(`Reading ${prop}`);
        return target[prop];
    }, 
}); // new Proxy returns proxy which is just used for removing "event-listener"
user.firstName // Reading firstName

我能得到任何解释吗,为什么它如此工作?

0 个答案:

没有答案