采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
Reflect(target,key,value,proxy)这里为什么使用proxy改变this指向?直接修改target有问题吗?还有为什么要用Reflect来做返回值。
proxy的存在只会决定对象的defineProperty属性是否触发而已,和this无关。
直接修改target没有问题,那就和直接操作对象没区别了,只不过代理更安全
Reflect做返回值,是因为proxy对象上的方法在Reflect对象上都有,不管proxy怎么修改Reflect都会取到它的行为。但是Reflect操作更简洁,当然你也可以用proxy对象上的方法做返回。Reflect还有一个优点就是,对象某些内部方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。使用Reflect更靠谱一些。
可以直接修改target也没问题,但是代理的作用就是避免直接修改target为的就是保护target,在proxy中操作target才安全,以后Object的方法都是直接部署在Reflect的,慢慢改变这个习惯吧
登录后可查看更多问答,登录/注册
ES6从零开始,量身设计的迷你案例,让你全面掌握ES6
997 15
4.2k 13
2.2k 10
903 9
1.0k 8