阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Proxy 处理器对象

      方法

      所有的 traps 是可选的。如果某个 trap 没有定义,那么默认的行为会应用到目标对象上。

      handler.getPrototypeOf()

      在读取代理对象的原型时触发该操作,比如在执行 Object.getPrototypeOf(proxy) 时。

      handler.setPrototypeOf()

      在设置代理对象的原型时触发该操作,比如在执行 Object.setPrototypeOf(proxy, null) 时。

      handler.isExtensible()

      在判断一个代理对象是否是可扩展时触发该操作,比如在执行 Object.isExtensible(proxy) 时。

      handler.preventExtensions()

      在让一个代理对象不可扩展时触发该操作,比如在执行 Object.preventExtensions(proxy) 时。

      handler.getOwnPropertyDescriptor()

      在获取代理对象某个属性的属性描述时触发该操作,比如在执行 Object.getOwnPropertyDescriptor(proxy, “foo”) 时。

      handler.defineProperty()

      在定义代理对象某个属性时的属性描述时触发该操作,比如在执行 Object.defineProperty(proxy, “foo”, {}) 时。

      handler.has()

      在判断代理对象是否拥有某个属性时触发该操作,比如在执行 “foo” in proxy 时。

      handler.get()

      在读取代理对象的某个属性时触发该操作,比如在执行 proxy.foo 时。

      handler.set()

      在给代理对象的某个属性赋值时触发该操作,比如在执行 proxy.foo = 1 时。

      handler.deleteProperty()

      在删除代理对象的某个属性时触发该操作,即使用 delete 运算符,比如在执行 delete proxy.foo 时。

      handler.ownKeys()

      Object.getOwnPropertyNames 和 Object.getOwnPropertySymbols 的 trap.

      handler.apply()

      当目标对象为函数,且被调用时触发。

      handler.construct()

      new 运算符的 trap。

      一些不标准的 traps 已经废弃并且被移除了

      目录
      本文目录
      目录