我的javascript 函数链之演变


Posted in Javascript onApril 07, 2011

最易读版

function chain(obj){ 
function fun(){ 
if (arguments.length == 0){ 
return fun.obj; 
} 
var methodName = arguments[0], methodArgs = [].slice.call(arguments,1); 
fun.obj[methodName].apply(fun.obj,methodArgs); 
return fun; 
} 
fun.obj = obj; 
return fun; 
}

易读版
function chain(obj){ 
return function(){ 
var Self = arguments.callee; Self.obj = obj; 
if(arguments.length==0){ 
return Self.obj; 
} 
var methodName = arguments[0], methodArgs = [].slice.call(arguments,1); 
Self.obj[methodName].apply(Self.obj,methodArgs); 
return Self; 
} 
}

精简版
function chain(obj){ 
return function(){ 
var Self = arguments.callee; Self.obj = obj; 
if(arguments.length==0){ 
return Self.obj; 
} 
Self.obj[arguments[0]].apply(Self.obj,[].slice.call(arguments,1)); 
return Self; 
} 
}

调用
chain(obj) 
(method1,arg1) 
(method2,arg2) 
(method3,arg3) 
...
Javascript 相关文章推荐
JS自调用匿名函数具体实现
Feb 11 Javascript
JS实现不规则TAB选项卡效果代码
Sep 16 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
js实现上传文件添加和删除文件选择框
Oct 24 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
Dec 02 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 Javascript
使用Node.js在深度学习中做图片预处理的方法
Sep 18 Javascript
javascript中layim之查找好友查找群组
Feb 06 Javascript
JavaScript中链式调用之研习
Apr 07 #Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 #Javascript
javascript 单例/单体模式(Singleton)
Apr 07 #Javascript
Safari5中alert的无限循环BUG
Apr 07 #Javascript
JQuery中html()方法使用不当带来的陷阱
Apr 07 #Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
Apr 07 #Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 #Javascript
You might like
一些使用频率比较高的php函数
2008/10/03 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
js图片处理示例代码
2014/05/12 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python中metaclass原理与用法详解
2019/06/25 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
最新奶茶店创业计划书范文
2014/02/08 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
消防安全培训工作总结
2015/10/23 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书