retour au cours

Erreur lors de la lecture d'une propriété inexistante

Habituellement, une tentative de lecture d’une propriété inexistante renvoie undefined.

Créez à la place un proxy qui génère une erreur pour une tentative de lecture d’une propriété inexistante.

Cela peut aider à détecter précocement les erreurs de programmation.

Écrivez une fonction wrap(target) qui prend un objet target et retourne un proxy qui ajoute cet aspect fonctionnel.

Voilà comment cela devrait fonctionner:

let user = {
  name: "John"
};

function wrap(target) {
  return new Proxy(target, {
      /* your code */
  });
}

user = wrap(user);

alert(user.name); // John
alert(user.age); // ReferenceError: la propriété n'existe pas : "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(`Property doesn't exist: "${prop}"`)
      }
    }
  });
}

user = wrap(user);

alert(user.name); // John
alert(user.age); // ReferenceError: Property doesn't exist: "age"