Nous souhaitons rendre ce projet open source disponible pour les gens du monde entier.

Aidez-nous à traduire le contenu de ce tutoriel dans votre langue!

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"