Перадача функцый параметрамі ў 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. Выведзіце ў кансоль суму вынікаў
функцый.