Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.
вернуться к уроку

Ошибка при чтении несуществующего свойства

Обычно при чтении несуществующего свойства из объекта возвращается undefined.

Создайте прокси, который генерирует ошибку при попытке прочитать несуществующее свойство.

Это может помочь обнаружить программные ошибки пораньше.

Напишите функцию wrap(target), которая берёт объект target и возвращает прокси, добавляющий в него этот аспект функциональности.

Вот как это должно работать:

let user = { name: "John" }; function wrap(target) { return new Proxy(target, { /* ваш код */ }); } user = wrap(user); alert(user.name); // John alert(user.age); // Ошибка: такого свойства не существует
let user = { name: "John" }; function wrap(target) { return new Proxy(target, { get(target, prop, receiver) { if (prop in target) { return Reflect.get(target, prop, receiver); } else { throw new ReferenceError(`Свойство не существует: "${prop}"`) } } }); } user = wrap(user); alert(user.name); // John alert(user.age); // Ошибка: Свойство не существует