语法
proxy的作用是代理对象的某些行为,其 实质 是重载对象的方法。
举个例子,我们想要读取一个对象的某个属性
|
|
而使用了proxy之后:
|
|
相当于 proxy通过handler里面的指令,代理了obj的行为。
proxy能代理的,并不仅仅是get函数,还有如下列表,具体的可以网上查阅下文档。
- get
- set
- has
- deleteProperty
- enumerate
- hasOwn
- ownKeys
- getOwnPropertyDescritor
- defineProperty
- preventExtensions
- getPrototypeOf
- isExtensible
- setPrototypeOf
- apply
- construct
使用场景
看完了proxy的文档,感觉模模糊糊有了印象,但是还是对它的使用场景没有概念,网上搜索了下,发下一篇非常好的介绍使用场景的文章,地址如下: [译] 实例解析 ES6 Proxy 使用场景,下面我也会使用这篇文章的例子,来介绍proxy到底怎么用。
校验模块
这里是重写set函数,实现校验功能
|
|
私有属性
js中的私有属性,约定俗成是通过前面加下划线的方式来实现,这里可以用proxy来实现,并且做到了强制私有
|
|
访问日志
|
|
预警和拦截
|
|
过滤操作
通过特征来过滤不必要的操作,例如下载中,解析中等中间过程,减少响应的压力
|
|