1UnitedPower: Jquery Frage

Beitrag lesen

Meine Herren!

Aber ein solcher Aufruf muß dann doch zwingenderweise "klassisch" erfolgen, stimmt das?

Ja, dass du jQuery nicht von JavaScript trennen kannst, hast du verstanden oder?

Funktionsaufrufe finden immer "klassisch" statt. Genauso, wie ein if-Statement immer klassisch stattfindet.

Funktionsaufrufe geschehen immer auf eine der drei folgenden Arten:

funktion();  
funktion.call();  
funktion.apply();  

(Exoten, wie setTimeout einmal außer Acht gelassen.)

Eine andere Methode eine Funktion aufzurufen gibt es nicht, die kann auch jQuery nicht neu erfinden.

Was jQuery aber kann, ist eine Callback-Funktion entgegen nehmen und sie dann aufrufen, wenn jQuery es für nötig hält. So geschieht es zum Beispiel, wenn ein Event-Handler registriert wird. Beispielweise:

$( document ).ready( callback );  
// oder  
$( 'div' ).click( callback );  
  
function callback () { /* … */ };

Diese Funktion wird von uns nicht selber aufgerufen, stattdessen werden sie jQuery bekannt gemacht. Aber unter der Haube wird jQuery diese Funktionen irgendwo mit einem der drei oben genannten Methoden aufrufen.

Das Prinzip nennt sich "inversion of control". Wir sagen jQuery sinngemäß "Hier du weißt am besten, wann diese Funktion aufgerufen werden muss, also mach du das für uns".

Wenn kein konkreter Grund vorliegt den Methoden-Aufruf an jQuery zu delegieren, etwa, weil wir selber genau wissen, wann unsere Funktion aufgerufen werden muss, dann können wir keinen Nutzen aus diesem Prinzip ziehen und rufen die Funktion selber "klassisch" auf.

--
“All right, then, I'll go to hell.” – Huck Finn