In the powerful world of JS, you can do a lot of crazy things with Bind/Apply/Call. Here, I can show a small example so that it can be easily understood.
function test1(a, b, c) {
console.log(Array.prototype.slice.call(arguments));
// What will this output?
}
function test2(fn) {
fn();