Nu geef je een callback mee in de functie. Maar kun je dan ook doen bij het aanroepen van de functie?
Dan ben je natuurlijk helemaal vrij om het te gebruiken waar nodig is.
Dit kun je ook doen bij de fadeIn en fadeOut, maar moet toch ook bij een eigen functie kunnen?
Hm, dit is toch hetzelfde als bij fadeIn/-Out gebeurt? Daar geef je een "snelheid" mee, en iets wat "daarna" moet gebeuren. Dat doet mijn bovenstaande "aanpassing ook": eerst doe je "wat de functie moet doen" (met para1 en para2), en daarna roep je een (eventuele) callback aan. Die callback kun je bij het aanroepen van de functie meegeven. Dus zoals met je eigen voorbeeld:
test(para1, para2, function(){
//doe dit na de functie test
});
Of het complete verhaal:
function test(para1, para2, callback){
alert('hier wat de functie moet doen');
if(callback) callback.call();
}
test('para1', 'para2', function(){
alert('doe dit na de functie test');
});
Hiermee krijg je dus eerst een alert met "hier wat de functie moet doen", en vervolgens eentje met "doe dit na de functie test". Of had je graag een ander eindresultaat gehad?
Waarom zouden JavaScript functies standaard uitgerust zijn met callbacks? fadeIn() en fadeOut() maken onderdeel uit van een library die bovenop JavaScript is gebouwd. Dan is het haast vanzelfsprekend dat deze méér kunnen dan wat JavaScript standaard kan, anders zou zo'n lib weinig meerwaarde hebben.
Of je moet met Promises aan de gang willen. Zelf zie ik het voordeel niet zo (uiteindelijk werkt het ongeveer hetzelfde als met callbacks), maar blijkbaar is het idee (en de algemene consensus) dat het hiermee "eenvoudiger" wordt.