MST

星途 面试题库

面试题:JavaScript 中代理对象的基本用法

请简述 JavaScript 代理对象(Proxy)的基本语法,并举例说明如何使用代理对象对一个对象的属性访问进行拦截和自定义操作。
25.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

基本语法

const proxy = new Proxy(target, handler);

  • target:要使用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。
  • handler:一个通常以字面量对象形式指定的对象,其包含了要拦截操作的相关方法。

示例:对对象属性访问进行拦截和自定义操作

const target = {
    name: 'John',
    age: 30
};

const handler = {
    get(target, prop) {
        if (prop === 'name') {
            return 'Custom Name';
        }
        return target[prop];
    }
};

const proxy = new Proxy(target, handler);
console.log(proxy.name); // 输出: Custom Name
console.log(proxy.age); // 输出: 30

在上述示例中,通过 Proxyhandlerget 方法拦截了对 target 对象属性的读取操作,当读取 name 属性时返回自定义值,其他属性正常返回。