Four parameters: a name args[0]
, the registry array
args[1]
, the method args[2]
, and a context object
args[3]
. When the bound method executes the provided
context will be used.
map = mtc(args, ['object']);
anon = mtc(args, ['array', 'function']);
anonctx = mtc(args, ['array', 'function', 'object']);
named = mtc(args, ['string', 'array', 'function']);
namedctx = mtc(args, ['string', 'array', 'function', 'object']);
if (anon || anonctx || named || namedctx) {
var n = (named || namedctx) ? 1 : 0;
obj.fn = args[n + 1];
obj.ctx = anonctx ? args[n + 2] : ctx;
if (anon || named) {
obj.bind = bindArgsOnly(args[n + 0], args[n + 1], this);
} else if (anonctx || namedctx) {
obj.bind = utils.run.bind(args[n + 2], args[n + 0], args[n + 1], this);
}