Error al leer una propiedad no existente
Usualmente, el intento de leer una propiedad que no existe devuelve undefined
.
Crea en su lugar un proxy que arroje un error por intentar leer una propiedad no existente.
Esto puede ayudar a detectar equivocaciones en la programación en forma temprana.
Escribe una función wrap(target)
que tome un objeto target
y devuelva un proxy que agregue este aspecto de funcionalidad.
Así es como debe funcionar:
let user = {
name: "John"
};
function wrap(target) {
return new Proxy(target, {
/* tu código */
});
}
user = wrap(user);
alert(user.name); // John
alert(user.age); // ReferenceError: La propiedad no existe: "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(`La propiedad no existe: "${prop}"`)
}
}
});
}
user = wrap(user);
alert(user.name); // John
alert(user.age); // ReferenceError: La propiedad no existe: "age"