MST

星途 面试题库

面试题:JavaScript 中 Proxy 与 Reflect 的协同应用

假设你有一个对象,它的属性值需要进行一些验证和转换操作。请使用 Proxy 和 Reflect 实现一个代理,在设置属性值时,对值进行验证(例如,如果是数字,必须大于0),如果验证通过则使用 Reflect 设置属性值,否则抛出一个错误。
30.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
const target = {};

const handler = {
    set(target, property, value) {
        if (typeof value === 'number' && value <= 0) {
            throw new Error('数字必须大于0');
        }
        return Reflect.set(target, property, value);
    }
};

const proxy = new Proxy(target, handler);