Ich bin kürzlich mit Firma Android -Projekten beschäftigt, daher nehme ich selten Zeit, um etwas zu schreiben. Sobald ich frei wurde, schaute ich durch das, was ich zuvor gesehen hatte. Nach Android spüre ich, wie wichtig die mobile Entwicklung mehr ist. Jetzt sind native Apps und Web -Apps der Mainstream. Mit anderen Worten, verschiedene Browser-basierte Web-App-Frameworks werden immer beliebter, und diejenigen, die Js machen, werden immer vielversprechender. Ich beschloss auch, schrittweise von der Back-End-Entwicklung zur Entwicklung von Front-End-Entwicklung und der mobilen Entwicklung zu wechseln. Lassen Sie uns nicht über Unsinn sprechen, lassen Sie uns zum Thema "JS Callback -Funktion" kommen.
Apropos Rückruffunktionen, obwohl viele Menschen die Bedeutung kennen, haben sie immer noch nur wenige Verständnisse. Wie man es benutzt, ist es immer noch ein bisschen verwirrt. Einige verwandte Dinge im Internet haben nicht im Detail erklärt, was passiert ist, und sie sind mehr einseitig. Als nächstes werde ich nur über mein persönliches Verständnis sprechen und mich nicht kritisieren. Schauen wir uns eine grobe Definition an. "Funktion A hat einen Parameter, und dieser Parameter ist eine Funktion b. Wenn die Funktion A ausgeführt wird, wird die Funktion B ausgeführt. Dann wird dieser Vorgang als Rückruf bezeichnet." Dieser Satz bedeutet, dass die Funktion B in die Funktion A in Form eines Parameters übergeben und in der Reihenfolge der Ausführung eines ersten und dann die Parameter b ausgeführt wird, b ist die sogenannte Rückruffunktion. Schauen wir uns zunächst das folgende Beispiel an.
Funktion a (Rückruf) {alert ('a'); callback.call (this); // oder callback (), callback.apply (this), abhängig von der persönlichen Präferenz} Funktion b () {alert ('b'); } // rufen Sie a (b);Das Ergebnis ist, dass 'A' zuerst auftaucht und 'B' auftaucht. Auf diese Weise könnte jemand fragen: "Was bringt es, einen solchen Code zu schreiben? Es scheint nicht nützlich zu sein!"
Ja, ich denke tatsächlich, dass es bedeutungslos ist, so zu schreiben: "Wenn Sie eine Funktion aufrufen, rufen Sie sie einfach in der Funktion auf." Ich schreibe nur ein kleines Beispiel für Sie, um Ihnen ein vorläufiges Verständnis zu vermitteln. Diese Art von parameterloser Eins wird selten im Prozess des wirklich Schreibens von Code verwendet, da wir in den meisten Szenarien Parameter übergeben müssen. Hier ist ein Parameter:
Funktion C (Rückruf) {alert ('c'); callback.call (this, 'D'); } // call C (Funktion (e) {alert (e);});Sieht dieser Anruf vertraut aus? Hier wird der E -Parameter 'D' zugeordnet. Wir weisen einfach den Wert Charakter -Spritzer zu, aber tatsächlich können wir Objekten auch den Wert zuweisen. Gibt es einen E -Parameter in JQuery? Reden wir unten darüber
Wie wird der E -Parameter in JQuery durch einen Rückruf zugewiesen?
Ich denke, jeder ist mit dem JQuery -Framework vertraut. Es wird lange Zeit veröffentlicht und wird während der Entwicklung verwendet. Es ist relativ einfach. Es ist sehr bequem, die API online zu durchsuchen, und es ist einfach, loszulegen. Unter dem JQuery -Framework müssen wir manchmal einige Parameter im Ereignis abrufen, z. B. die Koordinaten des aktuellen Klicks und das Elementobjekt des Klicks. Diese Anforderung ist in JQuery leicht zu handhaben:
$ ("#id"). Bind ('Click', Funktion (e) {// E.Pagex, E.Pagey, E.Target ....... verschiedene Daten});Es ist ziemlich bequem zu bedienen. Tatsächlich wird die Zuordnung dieses E -Parameters auch durch die Rückruffunktion erreicht. Dem Parameter wird ihm mit dem Rückrufparameter ein Objektwert zugewiesen. Freunde, die den JJQuery -Quellcode sorgfältig studiert haben, hätten dies entdecken sollen.
Es gibt auch das gleiche Prinzip in Ajaxs $ .get ('', {}, Funktion (Daten) {}) Datenparameter.
Schauen wir uns an, wie die Rückruffunktion im Jquery -Ereignisobjekt angewendet wird.
Aus Gründen der Bequemlichkeit habe ich einfach über einige Implementierungen im Zusammenhang mit $ geschrieben. Ich habe vorher geschrieben, dass "Xiaotan JQuery" eine relativ enge Methode für die Rahmenimplementierung hat. Ich schreibe nur einen einfachen Selektor unten.
<div id = "container"> </div> <script> var _ $ = Funktion (id) {this.element = document.getElementById (id); } _ $. prototype = {bind: function (evt, radback) {var that = this; if (document.adDeVentListener) {this.element.adDeVentListener (evt, Funktion (e) {callback.call (this, that und standadize (e));}, false); } else if (document.attachEvent) {this.element.attachEvent ('on'+evt, function (e) {callback.call (this.StandADIDIDISE (e));}); } else this.element ['on'+evt] = function (e) {callback.call (that, that und standadize (e)); }; }, standadize: function (e) {var evt = e || window.event; var pagex, pagey, Layerx, Schicht; // pagex Horizontaler Koordinate Seite vertikaler Koordinatenschichtklick befindet sich an der horizontalen Koordinatenschicht. Klick befindet sich an der vertikalen Koordinate des Elements if (evt.pagex) {pagex = evt.pagex; pagey = evt.pagey; } else {pagex = document.body.scrollleft+evt.clientx-dokument.body.clientleft; pagey = document.body.scrolltop+evt.clienty-document.body.clientltop; } if (evt.layerx) {layerx = evt.layerx; Layery = evt.layery; } else {layerx = evt.offsetX; Layerxy = evt.offsety; } return {pagex: pagex, pagey: pagey, layerx: Layerx, Schichten: Schichten}}} Fenster. } $ ('Container'). Bind ('Click', Funktion (e) {alert (e.Pagex);}); $ ('Container1'). Bind ('Click', Funktion (e) {alert (e.Pagex);}); </script>Wir betrachten hauptsächlich die Implementierung der Standadize -Funktion. Ich werde nicht viel über diesen Code sagen, das Rückgabeobjekt ist
return {pagex: pagex, pagey: pagey, layerx: Layerx, Schicht: Schicht}Schauen Sie sich dann den Code -Callback an. Dem Code wird dem E -Parameter tatsächlich einen Wert zugeordnet, der mit einem Rückruf implementiert wird.
Die anonyme Funktion wird übergeben, wenn die Rückruffunktion aufgerufen wird
Funktion (e) {}callback.call (dies, das.Standadize (e)) entspricht der Ausführung eines solchen Code -Stücks
(Funktion (e) {}) (standadize (e))Dies ist auch die klassische Sache bei JQuery mit Callback -Funktionen. So wird der E -Parameter zugewiesen. Nachdem Sie dies gesagt haben, haben Sie wahrscheinlich ein gutes Verständnis dafür und wie man es benutzt.
Rückrufe werden häufiger in verschiedenen Frameworks verwendet. Manchmal können Sie es auch nach der tatsächlichen Situation verwenden, wenn Sie etwas selbst schreiben.
Die obigen Ansichten zu Rückruffunktionen in JS sind alle Inhalte, die ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.