我的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 相关文章推荐
extjs之去除s.gif的影响
Dec 25 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
JS异步宏队列微队列原理详解
Sep 09 Javascript
JavaScript实现消消乐的源代码
Jan 12 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
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
Python yield 小结和实例
2014/04/25 Python
python获取远程图片大小和尺寸的方法
2015/03/26 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
python自动生成证件号的方法示例
2021/01/14 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
医大实习自我鉴定
2013/12/07 职场文书
保密工作实施方案
2014/02/24 职场文书
公证委托书模板
2014/04/03 职场文书
股东合作协议书
2014/04/14 职场文书
就职演讲稿范文
2014/05/19 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
发展党员工作情况汇报
2014/10/28 职场文书