js中的代理和反射
什么是代理?
代理是es6新增的内容,代理是目标对象的抽象,它是使用Proxy构造函数创建的一个对象。
而Proxy构造函数接收两个参数,分别是:目标对象和处理程序对象,两个参数缺一不可。
作用:
为开发者提供了拦截并向基本操作嵌入额外行为。
使用代理的主要目的:
可以定义多个捕获器。每次在代理对象上调用基本操作时,代理可以在这些操作传播到目标对象之前先调用捕获器函数,从而拦截并修改相应行为。
只有发生在代理对象的操作才会触发捕获器函数的行为,而目标对象仍然产生正常行为。
- 什么是捕获器?
捕获器就是在处理程序对象中定义的“基本操作的”。每个处理程序对象可以包含零个或多个捕获器,每个捕获器都对应一种基本操作,可以直接或间接在代理对象上调用。
什么是反射?
反射是es6新增的一个内置的全局对象,Reflect 对象,它封装原始行为的同名方法,便于原始行为进行重建。捕获器的基本操作都有各自的不同的反射API方法、参数等,具体可以查看 。