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