close
назад до уроку

Помилка під час зчитування неіснуючої властивості

Зазвичай при спробі прочитати неіснуючу властивість повертається undefined.

Створіть проксі, що видає помилку при спробі зчитування неіснуючої властивості.

Це може допомогти виявити помилки програмування раніше.

Напишіть функцію wrap(target), яка приймає об’єкт target і повертає проксі, що додає цей аспект функціональності.

Ось як це має працювати:

let user = {
  name: "Іван"
};

function wrap(target) {
  return new Proxy(target, {
      /* ваш код */
  });
}

user = wrap(user);

alert(user.name); // Іван
alert(user.age); // ReferenceError: Властивість не існує: "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); // Іван
alert(user.age); // ReferenceError: Властивість не існує: "age"