我的函数链之演变
转: Snandy
我的函数链之演变
最易读版
- 01 function chain(obj){
- 02 function fun(){
- 03 if (arguments.length == 0){
- 04 return fun.obj;
- 05 }
- 06 var methodName = arguments[0], methodArgs = [].slice.call(arguments,1);
- 07 fun.obj[methodName].apply(fun.obj,methodArgs);
- 08 return fun;
- 09 }
- 10 fun.obj = obj;
- 11 return fun;
- 12 }
复制代码易读版
- 01 function chain(obj){
- 02 return function(){
- 03 var Self = arguments.callee; Self.obj = obj;
- 04 if(arguments.length==0){
- 05 return Self.obj;
- 06 }
- 07 var methodName = arguments[0], methodArgs = [].slice.call(arguments,1);
- 08 Self.obj[methodName].apply(Self.obj,methodArgs);
- 09 return Self;
- 10 }
- 11 }
复制代码精简版
- 01 function chain(obj){
- 02 return function(){
- 03 var Self = arguments.callee; Self.obj = obj;
- 04 if(arguments.length==0){
- 05 return Self.obj;
- 06 }
- 07 Self.obj[arguments[0]].apply(Self.obj,[].slice.call(arguments,1));
- 08 return Self;
- 09 }
- 10 }
复制代码调用
- 1 chain(obj)
- 2 (method1,arg1)
- 3 (method2,arg2)
- 4 (method3,arg3)
- 5 ...
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论