IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

[POO] L'héritage [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36
    Points : 34
    Points
    34
    Par défaut [POO] L'héritage
    Bonjour,
    Comment faire de l'heritage avec l'API Prototype ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    ça se fait avec

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    		<script type='text/javascript' >
    				var FirstClass = Class.create();
    				FirstClass.prototype = 
    				{
    				   initialize: function () 
    				   {
    				       this.data = "Hello World";
    					   alert("constructeur appeler");
    				   },
     
    					message1: function () 
    					{
    				        alert("message1");
    				    }
    				};
     
    				var DataWriter = Class.create();
    				DataWriter.prototype = {
    					message2: function () 
    					{
    				        alert("message1");
    				    }
    				};
    				Object.extend(DataWriter, FirstClass);
    		</script>
    		<script type='text/javascript'>
    			var temp2 = new DataWriter();
    			temp.message1();
    			temp.message2();
    		</script>
    Je crée deux classes "DataWriter" qui hérite de "FirstClass".
    Voila ce qu'il ce passe :
    - temp.message1(); --> appelle le constructeur de "FirstClass" et affiche alert("constructeur appeler");
    - temp.message1(); --> alert("message1"); (la derivation a l'air de marcher)
    - temp.message2(); --> erreur JavaScript (FireFox : "temp2.message2 is not a function"/ IE :"this.initialize a la valeur Null ou n'est pas un objet.")

    Pourquoi cette erreur ? La derivation ne marche pas ?

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Moi, j'ai surtout
    temp is not defined

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type='text/javascript' src="prototype.js"></script>
    Ta pas oublier d'inclure l'API prototype.js par hasard ?
    ( sa m'etonnerai mais bon ^^ )

  6. #6
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Blague à part, la syntaxe à utiliser est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                    var DataWriter = Class.create();
                    Object.extend(DataWriter, FirstClass);
                    DataWriter.prototype.message2 =function () 
                        {
                            alert("message2");
                        }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    roro06 MERCI BEAUCOUP !

    sa marche au poil !

  8. #8
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut


    L'explication, tout de même :
    avec
    DataWriter.prototype = {...

    Tu ecrase ce que tu as créé juste avant avec Object.extend

    Alors qu'avec DataWriter.prototype.message2=function() ...

    Tu rajoute une méthode à ton objet

    (Penses au tag resolu, pour les copains ...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] classe héritage et assert
    Par sarainformatique dans le forum C++
    Réponses: 2
    Dernier message: 12/12/2008, 17h45
  2. [POO/Template] Héritage de paramètre template.
    Par méphistopheles dans le forum Langage
    Réponses: 9
    Dernier message: 18/11/2008, 18h02
  3. [POO] Opérateurs & Héritage
    Par Haknaton dans le forum C++
    Réponses: 3
    Dernier message: 05/10/2008, 22h47
  4. [POO] VB6 --> héritage
    Par tigrou2405 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 31/08/2007, 20h29
  5. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo