我的javascript 函数链之演变,需要的朋友可以参考下。
最易读版 
复制代码 代码如下:
 
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) 
... 
