00001 var apply = require('./_apply'), 00002 arrayMap = require('./_arrayMap'), 00003 baseIteratee = require('./_baseIteratee'), 00004 baseRest = require('./_baseRest'), 00005 baseUnary = require('./_baseUnary'), 00006 flatRest = require('./_flatRest'); 00007 00015 function createOver(arrayFunc) { 00016 return flatRest(function(iteratees) { 00017 iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); 00018 return baseRest(function(args) { 00019 var thisArg = this; 00020 return arrayFunc(iteratees, function(iteratee) { 00021 return apply(iteratee, thisArg, args); 00022 }); 00023 }); 00024 }); 00025 } 00026 00027 module.exports = createOver;