Параметри на пренесените функции во 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. Прикажете го резултатот.