Mickey's Blog ·

Proxy实例的方法 -get

Proxy的各种方法我们进行了概览,接下来介绍各个方法的具体使用,很多架构使用这些特性实现了很多很cool的功能,首先说get方法,它可以拦截对数据的访问并进行一些动作,我们不发挥想象力,直接看文档的demo,文档给我们列举了“获取不存在属性完成异常抛出”“get方法继承” “符数索引” “链式函数” “生成DOM节点”,前面的三个我们通过名字大概就能猜到实现,链式函数我们来重点看一下。

image.png

首先声明了funcStack数组存放所有的函数,如果访问的参数是get,那么直接用funcStack中的函数通过reduce便利,然后一次运算给出结果,如果不是get,那么就把这个函数添加到funcStack数组中等待使用。这里注意每次如果是添加函数,要返回oprxy对象,这样才能链式添加函数并最后调用get。

最后的生成DOM节点我们也看一下

image.png

生成节点的代码使用起来很熟悉,主要利用的也是get的特性,访问那个name就生成什么节点。

看全了get的demo我们发现,get提供给我们很大空间去实现功能,但是还需要开发人员扩展自己的思路,利用get实现一些很有用的功能,get本身的特性并不华丽,但是配合一些自定义的动作可以让es6提供一些前所未有的功能。