Суть Proxy в том, что он перехватывает обращения к свойствам объекта. В вашем примере нету ни одного обращения, потому и get нигде не выполняется; в примере вы просто создаёте экземпляр Proxy после чего он благополучно удаляется сборщиком мусора так как на него нету ссылок. Возвращайте свежесозданный прокси в функции createProxy, потом к нему обращайтесь
Дано : Функция принимает объект и должна вернуть Proxy для этого объекта
Proxy должен перехватывать все попытки записи значений свойств и возводить это значение в квадрат
Вопрос: Объясните пожалуйста, если я правильно понял то, Вы советуете вернуть proxy и уже с ним работать, а если это нужно сделать внутри функции, это же выполняется с помощью "get" в функции - createProxy?
RomanKaTPro, ну как, я бы не назвал это советом, потому что скорее всего по-другому у вас и не получится. Но да - из функции createProxy стоит вернуть созданный Proxy.
"если это нужно сделать внутри функции, это же выполняется с помощью "get" в функции - createProxy" - это я уже не понял. Функция get выполняется при обращении к свойству проксируемого объекта:
let awesome_phrases = {
greeting: 'howdy ho'
};
awesome_phrases = new Proxy(awesome_phrases, {
get(target, prop) {
if (prop in target) {
return target[ prop ];
} else {
return 'you got the wrong turn here, buddy';
}
}
});
console.log( awesome_phrases.greeting );
// howdy ho
console.log( awesome_phrases.threat );
// you got the wrong turn here, buddy