Was ist die Verwendung von callParent
Ich gegangen durch diese online-tutorial zu verstehen, die grundlegenden Konzepte von Sencha touch. Nun, ich bin sicher, dass ich mich darauf freuen kann, um zu beginnen Codierung für das Reale Projekt mit meinem wissen.
Aber ich habe eine Frage über die Funktionalität von this.callParent(arguments)
verwendet der Autor in diesem tutorial.
Ich weiß, der name zeigt deutlich, dass die "Elternklasse diese wird genannt".
Aber ich habe Fragen wie: (im Zusammenhang mit der tutorial)
- Warum wir den Aufruf der parent-Klasse?
- Wird das ausführen der übergeordneten Klasse wieder komplett?
Bitte helfen Sie mir zu verstehen callParent
bezogen auf das oben erwähnte tutorial.
Ich haben gegangen durch die touch-docs, die ich nicht verstehen kann. (Die Erklärung scheint ganz anders zu mir mit Bezug auf den Autor ' s code).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie in Ihrer Frage erwähnt
this.callParent(arguments)
ruft die entsprechende Funktion in der super-Klasse.Ist, das Aufrufen
this.callParent(arguments)
in einem Konstruktor ruft den Konstruktor der super-Klasse, die erweitert wird.In dem tutorial erwähnt, Dies ist, was der Autor tut.
Aber warum tut er das, ich bin nicht sicher, weil es gibt keine Notwendigkeit, rufen Sie
Ext.app.Controller
Klasseinit
undlaunch
Funktion in diesem tutorial.Lassen Sie mich erklären mit Beispiel
1) Schaffung von super-Klasse aufgerufen
Main
2) Erstellen Sie eine Unterklasse
SubMain
erweitertMyApp.controller.Main
Wenn Sie jetzt Ihre Anwendung ausführen, die Konsole.melden werden wir in super-und Unterklasse wird, drucken Sie Folgendes in der browser-Konsole
Ausgabe
Da wir wissen, dass, wenn wir die Anwendung starten
init
undlaunch
Funktion jedes Reglers wird ein mal aufgerufen wird.Aber, sehen Sie Haupt-init & Haupt-Start-Funktion wird zweimal aufgerufen, Warum?
Der Grund, warum es heißt init und Start-Funktion des super-Klasse ist wieder da, die wir
this.callParent(arguments);
iminit and launch
FunktionSubMain
, dass ruft die init-und Start-Funktion vonMain
(super Klasse) Klasse wieder einmal.Es gibt noch mehr, Was über
arguments
welche an incallParent
FunktionArgumente ist ein besonderer parameter.
Nun, lassen Sie uns ein Beispiel nehmen, um zu testen
Mail.controller.phone.Messages
Klasse erweitertMail.controller.Messages
bedeutet dies einfach die gesamte Konfiguration und Funktionen vererbt werden.Nun, wenn der Benutzer Registerkarten auf ein Element in
messageList
dieloadMessage
Funktion inMail.controller.phone.Messages
Klasse aufgerufen wird.Haben auch wir platziert
this.callParent(arguments);
beiloadMessage
- Funktion, so dass ersteMail.controller.Messages
KlasseloadMessage
- Funktion aufgerufen und dannthis.getMain().setActiveItem(1);
Zeile ausgeführt wird.Wie bereits erwähnt
loadMessage
Funktion inMail.controller.Messages
wird nicht aufgerufen werden, bis Siethis.callParent(arguments);
imloadMessage
Funktion beiMail.controller.phone.Messages
Klasse.Beachten Sie, dass
item
argument wird nur übergeben, umloadMessage
FunktionMail.controller.phone.Messages
, aberloadMessage
FunktionMail.controller.phone.Messages
bekommt immer noch dieitem
argument, Wie ?Es ist, Weil der
arguments
Sie übergebenthis.callParent
Funktion innerhalbloadMessage
FunktionMail.controller.phone.Messages
Klasse.