apply拦截器可以拦截函数的调用,call和apply操作。
apply接收三个参数,分别是目标对象、目标对象的上下文对象(this)和目标对象的参数数组。

这里顺便讲一下Reflect,本来是要等到Proxy之后进行的。下文的Reflect.apply是曾经的对象操作的封装,简单的描述apply的功能就是接收三个参数,第一个参数是函数,第二个参数是上下文,第三个参数是函数的参数。执行后相当于根据上下文和参数直接运行了目标函数。举个例子

那么我们继续看下一个例子

这里用了一个...运算符,将apply里的参数按顺序填到Reflect.apply中去,于是这个target函数就会被执行了。