jQuery模拟prototype的inject方法
??? 首先来看看prototype.js里的inject方法
??? 手册中的描述:
????? inject(accumulator, iterator) -> accumulatedValue? 基于迭代子所产生的前一个结果递增地构建一个结果值。可以用来构建数组、数字数额/平均值等等。
??? 用法:?
//这个我一开始的写法iterator = (function(fn, context) { var args = Array.prototype.slice.call(arguments, 2); return args.length == 0 ? function() { return fn.apply(context, arguments); } : function() { return fn.apply(context, args.concat.apply(args, arguments)); };})(iterator, context);//这个是把ptototype中用到相关方法整合的结果iterator = (function(fn, context) { if (arguments.length < 3 && typeof arguments[1] == "undefined") return fn; var args = Array.prototype.slice.call(arguments, 2); return function() { var a = (function(array, args) { var arrayLength = array.length, length = args.length; while (length--) array[arrayLength + length] = args[length]; return array; })(Array.prototype.slice.call(args, 0), arguments); return fn.apply(context, a); };})(iterator, context);?
?