| var apply = require('./_apply'), | |
|     arrayMap = require('./_arrayMap'), | |
|     baseIteratee = require('./_baseIteratee'), | |
|     baseRest = require('./_baseRest'), | |
|     baseUnary = require('./_baseUnary'), | |
|     flatRest = require('./_flatRest'); | |
| 
 | |
| /** | |
|  * Creates a function like `_.over`. | |
|  * | |
|  * @private | |
|  * @param {Function} arrayFunc The function to iterate over iteratees. | |
|  * @returns {Function} Returns the new over function. | |
|  */ | |
| function createOver(arrayFunc) { | |
|   return flatRest(function(iteratees) { | |
|     iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); | |
|     return baseRest(function(args) { | |
|       var thisArg = this; | |
|       return arrayFunc(iteratees, function(iteratee) { | |
|         return apply(iteratee, thisArg, args); | |
|       }); | |
|     }); | |
|   }); | |
| } | |
| 
 | |
| module.exports = createOver;
 |