每次我们修改钱包剩余金额时,都要执行一次consume++去执行一次记账的操作。有没有更简单的方式,不需要每次都写上一行代码去增加消费次数呢?
答案当然有,它就是Proxy代理对象!使用代理对象,你想对目标对象的属性操作全部改为对代理对象相同属性的操作,代理对象提供了对属性获取 [[get]] 修改 [[set]] 等操作的拦截,js将这种拦截称为trap(捕捉器)。优品拍拍
通过捕捉器,我们就可以捕获到 代码中对属性的操作时机,让我们能够先执行我们自定义的业务逻辑代码。因为我们对目标对象的属性操作改为了对代理对象相同的属性操作,所以我们在最后需要通过Reflact执行目标对象的原始操作。