Skip to content

Latest commit

 

History

History
23 lines (19 loc) · 440 Bytes

File metadata and controls

23 lines (19 loc) · 440 Bytes
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(`A propriedade não existe: "${prop}"`)
      }
    }
  });
}

user = wrap(user);

alert(user.name); // John
alert(user.age); // ReferenceError: A propriedade não existe: "age"