我的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 相关文章推荐
js或css文件后面跟参数的原因说明
Jan 09 Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 Javascript
简单使用webpack打包文件的实现
Oct 29 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变量的方法
2015/06/26 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
动态控制Table的js代码
2007/03/07 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
JS常用函数使用指南
2014/11/23 Javascript
js获取域名的方法
2015/01/27 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
python的迭代器与生成器实例详解
2014/07/16 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
python制作朋友圈九宫格图片
2019/11/03 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
环卫工人先进事迹材料
2014/06/02 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
护理工作心得体会
2016/01/22 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL