我的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 相关文章推荐
一端时间轮换的广告
Jun 26 Javascript
javascript 有用的脚本函数
May 07 Javascript
编写高效jQuery代码的4个原则和5个技巧
Apr 24 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
Node.js实用代码段之正确拼接Buffer
Mar 17 Javascript
jQuery实现div跟随鼠标移动
Aug 20 jQuery
Vue+Element使用富文本编辑器的示例代码
Aug 14 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
Feb 28 Javascript
angularjs 缓存的使用详解
Mar 19 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_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
php图像生成函数之间的区别分析
2012/12/06 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
简单谈谈Python中的闭包
2016/11/30 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
应届生服务员求职信
2013/10/31 职场文书
大学开学计划书
2014/04/30 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书