Использование прокси JavaScript - PullRequest
0 голосов
/ 11 марта 2019

Я изучаю 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

Могу ли я получить какое-либо объяснение, почему это работает таким образом?

...