我的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 ajax获取网站Alexa排名的代码
Dec 12 Javascript
js 编程笔记 无名函数
Jun 28 Javascript
js播放wav文件(源码)
Apr 22 Javascript
jQuery UI插件自定义confirm确认框的方法
Mar 20 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
javascript使用闭包模拟对象的私有属性和方法
Oct 05 Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
Jan 22 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
使用js和canvas实现时钟效果
Sep 08 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
B2K与车机的中波PK
2021/03/02 无线电
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
BBS(php & mysql)完整版(四)
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python爬虫设置代理IP的方法(爬虫技巧)
2018/03/04 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
高二地理教学反思
2014/01/24 职场文书
陈欧的广告词
2014/03/18 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
工程质检员岗位职责
2015/04/08 职场文书
反腐倡廉观后感
2015/06/08 职场文书
培训计划通知
2015/07/15 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
MySQL创建定时任务
2022/01/22 MySQL