offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFNFAP 240 of 503 menu

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

Функции, подобно числам, строкам и массивам, могут передаваться параметрами в другие функции.

Рассмотрим подробнее на практическом примере. Пусть у нас есть функция test, принимающая два параметра:

test(параметр1, параметр2);

Давайте в первый параметр функции test передадим анонимную функцию, возвращающую 1, а во второй параметр - анонимную функцию, возвращающую 2:

test( function() {return 1;}, function() {return 2;} );

Код, приведенный выше, пока не рабочий, так как мы не создали саму функцию. Сделаем это:

function test(func1, func2) { }

При определении функции мы указали два параметра - func1 и func2. Эти параметры ничего не знают про то, что в них будет передаваться. Можем, например, передать числа:

test(1, 2); // вызываем функцию function test(func1, func2) { console.log(func1); // выведет 1 console.log(func2); // выведет 2 }

А можем передать функции:

test( function() {return 1;}, // первый параметр function() {return 2;} // второй параметр ); function test(func1, func2) { console.log(func1); // выведет 'function() {return 1;}' console.log(func2); // выведет 'function() {return 2;}' }

Как вы видите, теперь в консоль выводится исходный код функций. Давайте сделаем так, чтобы он выводил их результаты. Для этого напишем функциям круглые скобки:

test( function() {return 1;}, function() {return 2;} ); function test(func1, func2) { console.log( func1() ); // выведет 1 console.log( func2() ); // выведет 2 }

Давайте выведем в консоль сумму результатов первой и второй функции:

test( function() {return 1;}, function() {return 2;} ); function test(func1, func2) { console.log( func1() + func2() ); // выведет 3 }

Сделайте функцию test, параметрами принимающую 3 функции. Передайте в нее первым параметром функцию, возвращающую 1, вторым - функцию, возвращающую 2, третьим - функцию, возвращающую 3. Выведите в консоль сумму результатов функций.

enru