Proxy对象用法
栏目:
Javascript
发布时间:2024-11-01
Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。
Proxy 语法
const p = new Proxy(target, handler)
参数
target 要使用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。
handler 一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理 p 的行为。
Proxy 实例
Proxy 拦截 get 实例
const user = {
school: 'No.1 Middle School'
}
const lucy = new Proxy(user, {
get(target, key) {
console.log('get', target, key)
return `result: ${target[key]}`
}
})
lucy.school // No.1 Middle School
// 'result: No.1 Middle School'(控制台输出)
Proxy 拦截 set 实例
const user = {
name: 'no name'
}
const lucy = new Proxy(user, {
set(obj, prop, value) {
console.log('set', obj, prop, value)
obj[prop] = value
}
})
console.log(lucy.name) // no name
lucy.name = 'lucy'
// set {name: 'no name'} name lucy (控制台输出)
本文地址:https://www.tides.cn/p_js-proxy