_createOver.js (780B)
1 var apply = require('./_apply'), 2 arrayMap = require('./_arrayMap'), 3 baseIteratee = require('./_baseIteratee'), 4 baseRest = require('./_baseRest'), 5 baseUnary = require('./_baseUnary'), 6 flatRest = require('./_flatRest'); 7 8 /** 9 * Creates a function like `_.over`. 10 * 11 * @private 12 * @param {Function} arrayFunc The function to iterate over iteratees. 13 * @returns {Function} Returns the new over function. 14 */ 15 function createOver(arrayFunc) { 16 return flatRest(function(iteratees) { 17 iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); 18 return baseRest(function(args) { 19 var thisArg = this; 20 return arrayFunc(iteratees, function(iteratee) { 21 return apply(iteratee, thisArg, args); 22 }); 23 }); 24 }); 25 } 26 27 module.exports = createOver;