call back functionによって動作を変える
Function objectの.lengthで普通にできるし。
まあ、基本的には変わらないけど、こっちのほうがかっこいい!
var each = function (fun) {if ( fun.length != 1 ) var apply = 'apply';return fun[apply || "call"](fun,arguments[1]);};
Function objectの.lengthで普通にできるし。
まあ、基本的には変わらないけど、こっちのほうがかっこいい!
var each = function (fun) {if ( fun.length != 1 ) var apply = 'apply';return fun[apply || "call"](fun,arguments[1]);};
each( function (a,b,c) { alert(a+' '+b+' '+c) }, [1,2,3] );
#-> alert( '1 2 3' );
each( function (a) { alert(a[0]+' '+a[1]+' '+a[2]) }, [1,2,3] );
#-> alert( '1 2 3' );
いや、こうだな。
var each = function (fun) {return fun[--fun.length ? 'apply' : 'call'](fun,arguments[1]);};