包含:第九章,第十章,第十二章
说两句:用块引用就是图好看。
说两句:随兴趣而来,期约与异步函数先放放。
ES6新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力。
代理基础
1.可以给目标对象定义一个关联的代理对象,而这个代理对象可以作为抽象的目标对象来使用。
2.代理通过Proxy构造函数创建,接受两个参数,目标对象和处理程序对象。
3.定义捕获器(trap)get
捕获器就是处理程序对象中定义的基本操作拦截器。
可以用get(目标对象,要查询的属性,代理对象)()捕获行为。
由于懒,可以调用全局Reflect对象的同名方法重建原始行为。
4.撤销代理对象revoke
Proxy的revocable()方法,支持代理对象与撤销代理对象的关联,使用解构可使用。
const { proxy, revoke } = Proxy.revocable(target,handler)。
注意,无法new了,找不到数据了
5.可以使用一些实用反射API
Reflect.get();//替换对象属性访问 Reflect.set();//替换=赋值操作符 Reflect.has();//替换in操作符或者with Reflect.construct();//替代new操作符 Reflect.deleteProperty();//替代delete