j'ai fait quelques recherches sur le ExtJS forum concernantméthodes privées et les champs l'intérieur d'un classe étendue, et je ne pouvais pas trouver une réponse réelle à ce sujet.membres privés lors de l'extension d'une classe à l'aide ExtJS
Et quand je dis une classe étendue je veux dire quelque chose comme ceci:
Ext.ux.MyExtendedClass = Ext.extend(Ext.util.Observable, {
publicVar1: 'Variable visible from outside this class',
constructor: function(config) { this.addEvents("fired"); this.listeners = config.listeners; }, // to show that I need to use the base class
publicMethod1: function() { return 'Method which can be called form everywhere'; },
publicMethod2: function() { return this.publicMethod1() + ' and ' + this.publicVar1; } // to show how to access the members from inside another member
});
Le problème ici est que tout est public. Alors, comment puis-je ajouter une nouvelle variable o méthode dans la portée de MyExtendedClass qui ne peut pas être accédé de l'extérieur mais peut être accessible par les méthodes publiques?
+1 Ca marche! Mais je viens de réaliser une autre solution qui semble meilleure. Parce qu'avec votre solution, le temps de création de chaque instance sera augmenté, et je crois que le mien ne l'est pas. Je vais l'afficher maintenant, pour que les gens puissent dire si j'ai tort ou pas. –
Je salue cette conversation. On peut dire que trop peu de développeurs sont préoccupés par la dissimulation de données lors du développement en JavaScript. – Upperstage