/// `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]);