go18/skills/vue/proxy.js

26 lines
578 B
JavaScript
Raw Permalink Normal View History

2025-07-27 17:39:36 +08:00
const monster1 = { eyeCount: 4 };
const handler1 = {
set(obj, prop, value) {
if ((prop === 'eyeCount') && ((value % 2) !== 0)) {
console.log('Monsters must have an even number of eyes');
} else {
return Reflect.set(...arguments);
}
}
};
const proxy1 = new Proxy(monster1, handler1);
proxy1.eyeCount = 1;
// expected output: "Monsters must have an even number of eyes"
console.log(proxy1.eyeCount);
// expected output: 4
proxy1.eyeCount = 2;
console.log(proxy1.eyeCount);
// expected output: 2
console.log(proxy1.eyeCount);
// expected output: 2