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

来源:3-13 Proxy和Reflect

qq__9987

2018-06-08

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

写回答

2回答

qq_修炼者_0

2018-07-09

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

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

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



2
0

快乐动起来呀

2018-06-10

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

0
0

ES6零基础教学 解析彩票项目

ES6从零开始,量身设计的迷你案例,让你全面掌握ES6

2579 学习 · 881 问题

查看课程