请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Reflect(target,key,value,proxy)这里为什么使用proxy改变this指向?

Reflect(target,key,value,proxy)这里为什么使用proxy改变this指向?直接修改target有问题吗?还有为什么要用Reflect来做返回值。

正在回答 回答被采纳积分+3

2回答

qq_修炼者_0 2018-07-09 13:38:41

proxy的存在只会决定对象的defineProperty属性是否触发而已,和this无关。

直接修改target没有问题,那就和直接操作对象没区别了,只不过代理更安全

Reflect做返回值,是因为proxy对象上的方法在Reflect对象上都有,不管proxy怎么修改Reflect都会取到它的行为。但是Reflect操作更简洁,当然你也可以用proxy对象上的方法做返回。Reflect还有一个优点就是,对象某些内部方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。使用Reflect更靠谱一些。



2 回复 有任何疑惑可以回复我~
快乐动起来呀 2018-06-10 16:24:08

可以直接修改target也没问题,但是代理的作用就是避免直接修改target为的就是保护target,在proxy中操作target才安全,以后Object的方法都是直接部署在Reflect的,慢慢改变这个习惯吧

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信