1.createCallBack
返回一个带有window对象的函数
1 Function.prototype.createCallback = function(){ 2 var args = arguments; 3 var method = this; 4 return function() { 5 return method.apply(window, args); 6 }; 7 };
2.createDelegate
返回一个函数,传入对象,不传则默认window
1 createDelegate : function(obj, args, appendArgs) 2 { 3 var method = this; 4 return function() { 5 var callArgs = args || arguments; 6 if( appendArgs === true ) 7 { 8 callArgs = Array.prototype.slice.call(arguments, 0); 9 callArgs = callArgs.concat(args); 10 } 11 else if(typeof appendArgs == "number") 12 { 13 callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first 14 15 var applyArgs = [appendArgs, 0].concat(args); // create method call params 16 Array.prototype.splice.apply(callArgs, applyArgs); // splice them in 17 } 18 return method.apply(obj || window, callArgs); 19 }; 20 }