proxy拦截对象方法(让apply,call传入的this失效)

     有时候我们期望一个对象的方法中的this永远指向他自身而不会被call和apply所传入的this所影响,这个时候我们就可以使用proxy在对象中架设一层拦截,这里我们需要拦截get操作。因为proxy中只提供了普通方法的拦截(通过handler中的apply属性),而没有提供对象方法的拦截。变通一下,我们只需要在对象访问方法的时候绑定this就行(这个this就是我们的对象本身),任何对象的访问操作都会触发get,所以我们选择了拦截get。具体代码如下:

proxy拦截对象方法(让apply,call传入的this失效)

     从结果来看经过proxy拦截之后,call和apply传入的上下文对象都无效了,因为我们在get中将obj对象的方法都通过bind绑定了obj对象本身,符合我们的期望。