Функции

# Функция с определенным кол-вом параметров function f(a, b, c, d) { console.log(a + b + c + d) } # Обычный способ вызова f(1, 2, 3, 4); # f.call() # Метод call жёстко фиксирует количество аргументов, через запятую f.call(context, 1, 2, 3, 4); # Вызов функции при помощи func.apply работает аналогично func.call, но принимает массив аргументов вместо списка: f.apply(context, [1, 2, 3, 4]);

При помощи call/apply можно легко взять метод одного объекта, в том числе встроенного, и вызвать в контексте другого.

function sayHi() { # Используем эту технику для упрощения манипуляций с arguments. Как мы знаем, это не массив, а обычный объект.. Но как бы хотелось вызывать на нём методы массива. arguments.join = [].join; // одолжили метод (1) var argStr = arguments.join(':'); // (2) alert(argStr); // сработает и выведет 1:2:3 } sayHi(1, 2, 3);