Параметри на предаваните функции в JavaScript

Нека имаме функция test, която приема като параметър друга функция и в конзолата извежда резултата от работата на тази предадена функция:

javascriptfunction test(func) {
  console.log( func() );
}

Нека предадената функция func приема число като параметър и прави нещо с него. Нека ѝ подадем, например, числото 3:

javascriptfunction test(func) {
  console.log( func(3) );
}

Сега нека извикаме функцията test, като ѝ подадем като параметър анонимна функция. Тази анонимна функция ще приема число като параметър и ще връща квадрата на това число.

В резултат на всичко това нашата конструкция ще изведе квадрата на числото 3, тоест 9:

javascript// Ще изведе 9:
test(
  function(num) {
    return num * num;
  }
);

function test(func) {
  console.log(func(3));
}

Нека оформим кода по-елегантно:

javascript// Ще изведе 9:
test(function(num) {
  return num * num;
});

function test(func) {
  console.log(func(3));
}
Задание 1

Копирайте кода на моята функция test. Извикайте тази функция, като ѝ подадете като параметър анонимна функция, която като параметър ще приема число и ще връща неговия куб.

Задание 2

Променете вашия код така, че предаваната функция да не е анонимна, а да е дефинирана като Function Declaration с име func.

Задание 3

Променете предаваната функция на Function Expression със същото име func.

Задание 4

Нека предаваната функция сега приема два параметъра и връща тяхната сума. При извикване на предаваната функция вътре в test подайте на предаваната функция числото 2 и числото 3. Изведете резултата.