Конспект JS-course

Задачи

Задача 1

Напишите функцию f, которая будет обёрткой вокруг другой функции g. Функция f обрабатывает первый аргумент сама, а остальные аргументы передаёт в функцию g, сколько бы их ни было.

Например:

function f() { /* ваш код */ }

function g(a, b, c) {
  alert( a + b + (c || 0) );
}

f("тест", 1, 2); // f выведет "тест", дальше g посчитает сумму "3"
f("тест2", 1, 2, 3); // f выведет "тест2", дальше g посчитает сумму "6"

Код функции f не должен зависеть от количества аргументов.

Решение

function f(a) {
  alert(a);
  var args = [].slice.call(arguments, 1);
  g.apply(this, args);
}

function g(a, b, c) {
  alert( a + b + (c || 0) );
}

f("тест", 1, 2);
f("тест2", 1, 2, 3);