我的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监听鼠标滚轮事件浅析
Jun 05 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
理解Javascript的call、apply
Dec 16 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
编写React组件项目实践分析
Mar 04 Javascript
收集前端面试题之url、href、src
Mar 22 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
Vue关于组件化开发知识点详解
May 13 Javascript
微信小程序收藏功能的实现代码
Jun 19 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
php实现天干地支计算器示例
2014/03/14 PHP
php输入数据统一类实例
2015/02/23 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
Python实现从订阅源下载图片的方法
2015/03/11 Python
python append、extend与insert的区别
2016/10/13 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
flask项目集成swagger的方法
2020/12/09 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
英文自我鉴定
2013/12/10 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
会员活动策划方案
2014/08/19 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
2014年医务科工作总结
2014/12/18 职场文书
工程款催款函
2015/06/24 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
Javascript 解构赋值详情
2021/11/17 Javascript
方法汇总:Python 安装第三方库常用
2022/04/26 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL