我的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 相关文章推荐
从sohu弄下来的flash中展示图片的代码
Apr 27 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
玩转JavaScript OOP - 类的实现详解
Jun 08 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
利用ES6实现单例模式及其应用详解
Dec 09 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
JS数组的高级使用方法示例小结
Mar 14 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
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
Javascript访问器属性实例分析
2014/12/30 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
Vue点击切换颜色的方法
2018/09/13 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python爬取网易云音乐评论
2018/11/16 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
Python 里最强的地图绘制神器
2021/03/01 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
学校经典推荐信
2013/10/30 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Oracle 多表查询基本语法实例
2022/04/18 Oracle