invoke.js 406 Bytes
/*
	Example usage:

	var obj = {
		setTime: function(ts) { this._time = ts }
	}
	each([obj], call('setTime', 1000))
*/

var slice = require('./slice')
module.exports = function call(methodName /*, curry1, ..., curryN */) {
	var curryArgs = slice(arguments, 1)
	return function futureCall(obj) {
		var fn = obj[methodName],
			args = curryArgs.concat(slice(arguments, 1))
		return fn.apply(obj, args)
	}
}