partial.js
436 Bytes
'use strict';
var callable = require('../../object/valid-callable')
, aFrom = require('../../array/from')
, defineLength = require('../_define-length')
, apply = Function.prototype.apply;
module.exports = function (/*…args*/) {
var fn = callable(this)
, args = aFrom(arguments);
return defineLength(function () {
return apply.call(fn, this, args.concat(aFrom(arguments)));
}, fn.length - args.length);
};