我的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 相关文章推荐
Javascript miscellanea -display data real time, using window.status
Jan 09 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
koa socket即时通讯的示例代码
Sep 07 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 07 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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php实现httpclient类示例
2014/04/08 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
调试php程序的简单步骤
2019/10/04 PHP
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
素质拓展感言
2014/01/29 职场文书
运动会开幕式主持词
2014/03/28 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
2015年档案室工作总结
2015/05/23 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
小学教师教学反思
2016/02/24 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang