underscore之Chaining_动力节点Java学院整理


Posted in Javascript onJuly 10, 2017

还记得jQuery支持链式调用吗?

$('a').attr('target', '_blank')
   .append(' <i class="uk-icon-external-link"></i>')
   .click(function () {});

如果我们有一组操作,用underscore提供的函数,写出来像这样:

_.filter(_.map([1, 4, 9, 16, 25], Math.sqrt), x => x % 2 === 1);
// [1, 3, 5]

能不能写成链式调用?

能!

underscore提供了把对象包装成能进行链式调用的方法,就是chain()函数:

_.chain([1, 4, 9, 16, 25])
 .map(Math.sqrt)
 .filter(x => x % 2 === 1)
 .value();
// [1, 3, 5]

因为每一步返回的都是包装对象,所以最后一步的结果需要调用value()获得最终结果。

小结

通过学习underscore,是不是对JavaScript的函数式编程又有了进一步的认识?

Javascript 相关文章推荐
类似框架的js代码
Nov 09 Javascript
js GridView 实现自动计算操作代码
Mar 25 Javascript
javascript实现的在当前窗口中漂浮框的代码
Mar 15 Javascript
js 多浏览器分别判断代码
Apr 01 Javascript
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
javascript屏蔽右键代码
May 15 Javascript
jQuery内容过滤选择器用法分析
Feb 10 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
JavaScript实现新年倒计时效果
Nov 17 Javascript
vue3修改link标签默认icon无效问题详解
Oct 09 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 #Javascript
Vue实现virtual-dom的原理简析
Jul 10 #Javascript
Vue2路由动画效果的实现代码
Jul 10 #Javascript
深入浅析Node.js单线程模型
Jul 10 #Javascript
require.js中的define函数详解
Jul 10 #Javascript
vue.js组件之间传递数据的方法
Jul 10 #Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 #Javascript
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
python简单实现计算过期时间的方法
2015/06/09 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
python之文件读取一行一行的方法
2018/07/12 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
高中班主任评语大全
2014/04/25 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书