我的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 相关文章推荐
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
js获取鼠标点击的位置实现思路及代码
May 09 Javascript
XML文件转化成NSData对象的方法
Aug 12 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
vue实现文字加密功能
Sep 27 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 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
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
python实现批处理文件
2020/07/28 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
北京大学自荐信范文
2014/01/28 职场文书
诚信承诺书范文
2014/03/27 职场文书
工人先进事迹材料
2014/12/26 职场文书
绵山导游词
2015/02/05 职场文书
校本研修个人总结
2015/02/28 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers