Kupeana Kazi kama Vigezo katika JavaScript
Kazi, kama nambari, masharti na safu, zinaweza kupitishwa kama vigezo kwa kazi nyingine.
Tuchunguze kwa undani zaidi kwa kutumia mfano wa vitendo.
Tuchukulie tuna kazi test inayokubali
vigezo viwili:
test(kipimo1, kipimo2);
Wacha tupe kwenye kipimo cha kwanza cha kazi test
kazi isiyo na jina, inayorudisha
1, na kwenye kipimo cha pili - kazi isiyo na jina
inayorudisha 2:
test(
function() {return 1;},
function() {return 2;}
);
Msimbo ulio hapo juu, bado haufanyi kazi, kwa kuwa hatujaanzisha kazi yenyewe. Hebu tuunde:
function test(func1, func2) {
}
Wakati wa kufafanua kazi tuliweka vigezo viwili
- func1 na func2. Vigezo hivi
havijui chochote kuhusu kile kitakachopitiwa ndani yao.
Tunaweza, kwa mfano, kupitisha nambari:
test(1, 2); // tunaita kazi
function test(func1, func2) {
console.log(func1); // itaonyesha 1
console.log(func2); // itaonyesha 2
}
Au tunaweza kupitisha kazi:
test(
function() {return 1;}, // kipimo cha kwanza
function() {return 2;} // kipimo cha pili
);
function test(func1, func2) {
console.log(func1); // itaonyesha 'function() {return 1;}'
console.log(func2); // itaonyesha 'function() {return 2;}'
}
Kama unavyoona, sasa kwenye konsole inaonyesha msimbo wa asili wa kazi. Hebu tufanye ili ionyeshe matokeo yao. Ili kufanya hivyo andika mabano ya mviringo kwenye kazi:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // itaonyesha 1
console.log( func2() ); // itaonyesha 2
}
Wacha tuonyeshe kwenye konsole jumla ya matokeo ya kazi ya kwanza na ya pili:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // itaonyesha 3
}
Fanya kazi test, kwa vigezo
inayokubali 3 kazi. Pitisha ndani
yake kipimo cha kwanza kazi, inayorudisha
1, cha pili - kazi inayorudisha
2, cha tatu - kazi inayorudisha
3. Onyesha kwenye konsole jumla ya matokeo
ya kazi.