| Summary: Class Design |
| Author: Maxence Delannoy, Sébastien ROMMENS(Translator) |
| Published: January 06, 2008 |
| Ext Version: 1.1 |
Languages: English Chinese
|
Le Javascript est différent par rapport à d'autres langages orientés-objets comme C++, Java ou PHP. Il n'est pas basé sur le concept de classes, mais utilise un concept de prototypes nommés.
Création d'objet Créer un objet en Javascript est très simple :
var monObjet = { aVar: 15, aMethod: function() { alert("Je suis une méthode de l'objet monObjet." + "aVar: " + this.aVar); } }
Vous n'avez pas besoin de définir une classe et de l'instancier pour créer un objet. Nous utilisons ici un initialiseur d'objet. C'est parfait dans le cas d'un objet unique. Si nous avons besoin d'objets multiples de même type, alors nous utiliserons un constructeur (fonction) et le mot clé new.
Utilisation d'un constructeur Il n'y a pas de classes en Javascript, mais les constructeurs existent. Vous pouvez écrire une fonction et ensuite créer un objet en utilisant le mot clé new.
// Premièrement, nous écrivons un constructeur vide pour notre classe function maClasse() { this.aVar = 15; this.aMethod = function() { alert("Je suis une méthode de l'objet monObjet."); } } // Nous créons une instance de cette classe. var A = new maClasse(); // Affiche 15 alert(A.aVar); // 2nd instance de la classe. var B = new maClasse();
Méthodes statiques Toutes les instances d'une classe partagent un même prototype d'objet. C'est là que les fonctions et valeurs statiques doivent être placées:
// Nous définissons une méthode du prototype de l'objet Ext.apply(maClasse.prototype, { defaultClassName: "x-widget-class", sharedMethod: function() { alert("Je suis une méthode statique.") } }); // Affichage de notre message A.sharedMethod(); // Même message B.sharedMethod();
Il n'y a pas de méthode appelée sharedMethod dans la définition de maClasse. Javascript cherche une méthode qui porte ce nom dans le prototype de l'objet et l'appel si elle existe.