I'm not asking how to use it. I know how to use it.
But when apply invokes the function that called it, how exactly does it pass an array of arguments into a function that was not written to take an array for an argument? Does it combine its given arguments array with the called functions "arguments"?
I looked at the latest ECMAscript specifications for .apply and .call, but I didn't really see anything about underlying logic.
Any explanation would be welcome. I'm new to JavaScript, and want to better understand what's going on under the hood. I'm currently trying to recreate some of the basic functions on my own, and this one is giving me a lot of trouble.

applywithoutapply(barringevalsiliness), as it is the only thing in JavaScript that provides this functionality. You might as well ask "how doesconsole.logaccess the console", or "how doessetTimeoutschedule a timeout"; it's just what it does.FunctionAPI, to be exact. The same wayconsole.logdoes something to a console (i.e. write to it),Array.prototype.push.applydoes something toArray.prototype.push(i.e. invoke it).