我的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 文档碎片
Jul 13 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
vue中子组件传递数据给父组件的讲解
Jan 27 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
layer.alert自定义关闭回调事件的方法
Sep 27 Javascript
vue项目中锚点定位替代方式
Nov 13 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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实现获取客户端IP并获取IP信息
2015/03/17 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
Js的MessageBox
2006/12/03 Javascript
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
再谈javascript原型继承
2014/11/10 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python编程线性回归代码示例
2017/12/07 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
python re的findall和finditer的区别详解
2020/11/15 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
2015年教研室工作总结范文
2015/05/23 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers