ES6 Proxy、Reflect、Generator、async

161 阅读1分钟

Proxy

Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。

常用的Proxy 支持的拦截操作:

  • get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy['foo']。

get方法用于拦截某个属性的读取操作,可以接受三个参数,依次为目标对象、属性名和 proxy 实例本身(严格地说,是操作行为所针对的对象),其中最后一个参数可选。

  • set(target, propKey, value, receiver):拦截对象属性的设置,比如proxy.foo = v或proxy['foo'] = v,返回一个布尔值。

set方法用来拦截某个属性的赋值操作,可以接受四个参数,依次为目标对象、属性名、属性值和 Proxy 实例本身,其中最后一个参数可选。

Reflect

Reflect是ES6为了操作对象而新增的API。

Generator

Generator 函数是 ES6 提供的一种异步编程解决方案

async

async 函数是什么?一句话,它就是 Generator 函数的语法糖。