Tous les ExtJS la documentation et les exemples que j'ai lu conseille d'appeler super-classe de méthodes comme ceci:
MyApp.MyPanel = Ext.extend(Ext.Panel, {
initComponent: function() {
// do something MyPanel specific here...
MyApp.MyPanel.superclass.initComponent.call(this);
}
});
J'ai été en utilisant ce modèle pour un certain temps, et le principal problème est, que lorsque vous renommez votre classe puis vous avez aussi changer tous les appels aux méthodes de la superclasse. C'est assez gênant, souvent, j'oublie et puis je dois retrouver des erreurs étranges.
Mais la lecture de la source d' Ext.extend()
j'ai découvert qu'à la place je pourrais utiliser l' superclass()
ou super()
méthodes Ext.extend()
ajoute au prototype:
MyApp.MyPanel = Ext.extend(Ext.Panel, {
initComponent: function() {
// do something MyPanel specific here...
this.superclass().initComponent.call(this);
}
});
Dans ce code de renommer MyPanel à quelque chose d'autre est simple, j'ai juste à changer une ligne.
Mais j'ai des doutes...
Je n'ai pas vu ce document n'importe où et de la vieille sagesse dit, je ne devrais pas compter sur les sans-papiers comportement.
Je n'ai pas trouvé une seule utilisation de ces
superclass()
etsupr()
méthodes de ExtJS code source. Pourquoi créer lorsque vous n'allez pas les utiliser?Peut-être que ces méthodes ont été utilisées dans certaines anciennes version de ExtJS mais sont déconseillés maintenant? Mais il semble d'une telle fonctionnalité utile, pourquoi vous railler il?
Donc, dois-je utiliser ces méthodes ou pas?