资讯专栏INFORMATION COLUMN

ES6 Proxy 链式操作

zhangfaliang / 2740人阅读

摘要:该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。中的参数作为的初始值,执行方法,并将执行结果作为回调函数的第一个参数。

ES6 Proxy 链式操作

最近在看阮一峰老师的ES6,对于代理的链式操作,这里记录一下我的理解
一言不合先贴代码!

首先. 利用闭包执行pipe(3)返回一个新的proxy对象。紧接着调用pipe(3).double,根据proxy拦截规则的定义:

get(target, propKey, receiver)

拦截对象属性的读取,比如proxy.foo和proxy["foo"]。

会调用返回的这个新的proxy对象的get方法,其中参数target是pipe(3),fnName是double,如果fnName全等于get,执行reduce方法,否则将该方法放入到funcStack数组中,并返回又一个新的Proxy对象,以便继续链式调用下去。

其次. 最后fnName全等于get,执行reduce方法

reduce 方法 (Array) (JavaScript)

对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。

pipe(3)中的参数作为reduce的初始值,执行double方法,并将执行结果作为回调函数的第一个参数。

最后. 浏览器的全局对象是window,node的全局对象是global,阮老师的这个例子要放到页面上运行,直接在node中运行会报错。

参考链接:
Proxy
reduce 方法 (Array) (JavaScript)
Node.js的全局对象和全局变量

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84103.html

相关文章

  • ES6Proxy学习

    摘要:在中构造器的典型特点就是首字母大写,我们通过原对象代理列表格式去创建对象创建的这个对象我们称之为代理对象。就是原对象是当前的属性名是代理对象。理解为明星的经理人消极怠工原封不动地转告外界的信息给明星本身。但是要注意与是两个不同的对象。 ES6之Proxy proxy的中文有代理的意思。在其他的程序设计语言中这个单词也具有类似的含义。 它是什么 Proxy是一个构造器。在js中构造器的典...

    UnixAgain 评论0 收藏0
  • 避免取值时出现Cannot read property 'xx' of unde

    摘要:由于是以空函数为代理对象,我们可以将执行它,触发。中会遍历数组依次取值,如果发现无法继续取值则,跳出循环。 本文来自我的博客,欢迎大家去GitHub上star我的博客 我们在取值特别是链式取值的时候,常常会遇到Cannot read property xx of undefined的错误,如何避免这种情况的发生呢?这里有几种方法以供参考 使用成熟的库方法 这是最简单的一种手段:只用引入...

    fantix 评论0 收藏0
  • es6 promise面试

    摘要:执行函数会返回一个遍历器对象,每一次函数里面的都相当一次遍历器对象的方法,并且可以通过方法传入自定义的来改变函数的行为。函数可以通过配合函数更轻松更优雅的实现异步编程和控制流管理。它和构造函数的不同点类的内部定义的所有方法,都是不可枚举的。 let const的命令 在ES6之前,声明变量只能用var,var方式声明变量其实是很不合理的,准确的说,是因为ES5里面没有块级作用域是很不合...

    timger 评论0 收藏0
  • 基于ES6的tinyJquery

    摘要:但它操作的便利性无出其右。我用写了一个基于简化版的,仅做个学习记录。包含基础操作,支持链式操作,仅供日常使用。功能基于基本选择器构造,包括基于原生构造,将原生对象转化为对象。为支持批量操作,构造器应包含复数的。 原文地址:Bougie的博客showImg(https://segmentfault.com/img/bV71uK?w=500&h=260);jQuery作为曾经Web前端的必...

    U2FsdGVkX1x 评论0 收藏0
  • 基于ES6的tinyJquery

    摘要:但它操作的便利性无出其右。我用写了一个基于简化版的,仅做个学习记录。包含基础操作,支持链式操作,仅供日常使用。功能基于基本选择器构造,包括基于原生构造,将原生对象转化为对象。为支持批量操作,构造器应包含复数的。 原文地址:Bougie的博客showImg(https://segmentfault.com/img/bV71uK?w=500&h=260);jQuery作为曾经Web前端的必...

    FrozenMap 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<