📜  解释 ES6 中的处理程序方法

📅  最后修改于: 2022-05-13 01:56:25.253000             🧑  作者: Mango

解释 ES6 中的处理程序方法

处理程序是一个对象,其属性是定义代理在对其执行操作时的行为的函数。一个空的处理程序将创建一个代理,该代理的行为几乎在所有方面都与目标完全相同。通过在处理程序对象上定义一组函数中的任何一个,您可以自定义代理行为的特定方面。例如,通过定义 get() 您可以提供目标属性访问器的自定义版本。

句法:

new Proxy(target, handler)

代理构造函数() :用于创建一个接受两个参数的代理对象。

参数:

  • 目标:用代理包装的目标对象。它可以是任何类型的对象,包括原生数组、函数,甚至是另一个代理。
  • handler:一个对象,其属性是定义代理在其上执行操作时的行为的函数。

处理程序方法列表:本节列出了您可以定义的所有处理程序方法。处理程序方法有时称为陷阱,因为它们会捕获对底层目标对象的调用

  • handler.apply():函数调用的陷阱。
  • handler.construct():新运算符的陷阱。
  • handler.defineProperty():Object.defineProperty 的陷阱。
  • handler.deleteProperty():删除运算符的陷阱。
  • handler.get():获取属性值的陷阱。
  • handler.getOwnPropertyDescriptor():Object.getOwnPropertyDescriptor 的陷阱。
  • handler.getPrototypeOf():Object.getPrototypeOf 的陷阱。
  • handler.has():in运算符的陷阱。
  • handler.isExtensible():Object.isExtensible 的陷阱。
  • handler.ownKeys():Object.getOwnPropertyNames 和 Object.getOwnPropertySymbols 的陷阱。
  • handler.preventExtensions():Object.preventExtensions 的陷阱。
  • handler.set():设置属性值的陷阱。
  • handler.setPrototypeOf():Object.setPrototypeOf 的陷阱。

示例:在此示例中,目标具有两个属性,字符串和数字。我们定义了一个处理程序,它为 num 返回一个不同的值,并允许任何其他访问通过目标。

Javascript


输出:

GeeksForGeeks
123