Aller au contenu Aller au menu Aller au sous menu Aller à la recherche

Ligams » Publications » Javascript » Framework Prototype JS

Créer classe avec prototype JS

Nous avons vu qu'il était possible de créer des classes en Javascript sans utiliser de framework addtionnel, il est cependant relativement pénible d'utiliser pleinement les fonctionnalités de la programmation orientée objet sansl'ajout d'un framework. Il en existe beaucoup, le plus abouti nous semble être prototypejs.

Présentation du framework Prototype

Prototypejs est un framework javascript utilisé pour faciliter le développement d'application web dynamiques côté client. Outre les fonctionnalités avancées (telles qu'ajax, les collections...), prototypeJS permet de créer des classes, et de bénéficier des fonctionnalités plus avancées de la programmation orientée objet (POO).

Création d'une classe

La création d'une classe est un peu plus verbeuse, prennons l'exemple classique de la classe Vehicule :

var Vehicule  = Class.create({
    //Constructeur
    initialize:function(modele,annee)
    {
        this.modele = modele;
        this.annee = annee;
        this.type = 'generique' ;
    },
    //méthode simple
    display:function()
    {
        document.write(this.type+" : "+this.modele+" "+this.annee+"<br>");    
    },
    pedaler:function()
    {
        document.write("Je ne suis pas capable de p&eacute;daler<br><br>");    
    }
});

La méthode constructeur s'appelle nécessairement initialize, on peut ensuite définir toutes les méthodes que l'on souhaite.

Héritage et polymorphisme en Javascript

L'héritage est certainement la grosse valeur ajoutée de l'utilisation d'un framework : étendons désormais la classe Vehicule en créant la classe Velo :

//class Velo héritant de la classe véhicule
var Velo = Class.create(Vehicule,{
    
    initialize: function($super, modele, annee) 
    {
        this.modele = modele;
        this.annee = annee;
        this.type = 'velo' ;
    },
    pedaler:function()
    {
        document.write("&Ccedil;a roule !<br><br>");    
    }
});

Inutile de redéfinir la méthode display(), Velo en hérite directement de sa classe mère Vehicule.

Instanciation et appel de méthode

Utilisation du mot clé new pour instancier, notation pointée pour l'appel de méthode, relativement classique.

var oVehicule = new Vehicule();
oVehicule.display();

Remarques

Sans permettre les fonctionnalités avancées de la POO classique (visibilité des attributs, modificateurs d'accès, multi-constructeurs, héritage multiple, abstractions, mot clé final...), mais il permet tout de même de concevoir raisonnablement des applications à destination des clients web riches.

Télécharger l'exemple

Cette archive contient :

  • Le framework prototypejs version 1.6.0.3 stable
  • Les classes Vehicule et Velo
  • Une page web ou elles sont utilisées

Articles connexes

Commentaires

Clients web riche

Jeudi 06 Août 2009 14:45:02 - Stéphane

Oui, c'est un problème, cela dit 200ko de javascript, ça n'est plus grand chose de nos jours... JS est ok pour de petites solutions, mais devient vite lourd pour des applis complexes ou Flash devrait souvent être préféré. Un avis subjectif : trop de JS tue le JS, par exemple l'interface gmail est superbe, mais devient rapidement lourde, voire défectueuse quand on passe la journée dessus.

Prototypejs - poids du fichier

Samedi 01 Août 2009 00:15:02 - JB

C'est pas mal, mais le véritable soucis, ça reste quand même le poids du fichier javascript à importer...

Les commentaires sont tous validés par un modérateur, votre commentaire n'apparaît pas directement sur le site.
Aucun support n'est assuré ici, vous pouvez néanmoins laisser vos remarques et critiques sur l'article, les points de vue pertinents sont toujours les bienvenus.

Votez pour cet article

Vote: 4,50/5
(Nombre de votant(s) : 2)

Traduction automatique

Recherche

Ligams © 2009 tous droits réservés - Contact | Aide à la navigation | Plan du site | Glossaire | Infos légales | Accessibilité