面试题答案
一键面试基本语法
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
在上述示例中,通过 Proxy
的 handler
的 get
方法拦截了对 target
对象属性的读取操作,当读取 name
属性时返回自定义值,其他属性正常返回。