Ext JS - Learning Center

Manual:Intro:Class Design fr

From Learn About the Ext JavaScript Library

Jump to: navigation, search
Summary: Class Design
Author: Maxence Delannoy, Sébastien ROMMENS(Translator)
Published: January 06, 2008
Ext Version: 1.1
Languages: en.png English cn.png Chinese

fr.png French kr.png Korean ru.png Русский

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.

  • This page was last modified on 16 April 2008, at 19:03.
  • This page has been accessed 2,228 times.