call and apply are verbose ways to all a function. f.call
is useful as a replacement for f() because it lets you set the
this that f sees. f.apply is useful because it takes an
array of argument values, so that you don't need to write them
all out if you don't know how many there are.
function f() { logArguments(this, arguments); }
// these are equivalent: f(1, 2, 3); f.call(window, 1, 2, 3); f.apply(window, [1, 2, 3]);