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

JavaScript Discussion :

H�ritage en JavaScript ?!


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Mars 2013
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par d�faut H�ritage en JavaScript ?!
    Bonjour � tous,

    Je suis un jeune padawan en JS et j'ai un probl�me en ce qui concerne l'h�ritage !!
    Je m'explique :
    J'ai une biblioth�que dans laquelle est d�fini des constructeurs ainsi que des prototypes comme ceux suivants :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    function MotionInfo() {};
    MotionInfo.prototype = new Object();
     
    function MotionHRMInfo() {};
    MotionHRMInfo.prototype = new MotionInfo();
    Je voudrais juste savoir comment h�rit� des prototypes suivant dans mon main (classe fille) ?
    J'ai essay� ce bout de code ci-dessous, mais il y a un WARNING qui dit que "MotionInfo()" est utilis� avant d'�tre d�fini ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    function Heritage(){}
    Heritage.prototype= new MotionInfo();
    Voil�.. j'esp�re vraiment que quelqu'un r�ussira � m'aider, �a fait plusieurs jours que je gal�re !
    Merci d'avance,
    Kaniar Kode

  2. #2
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Bonsoir

    Exemple :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    var MotionInfo = function( name ){
        this.texte = name;
    };
     
    MotionInfo.prototype.setTexte = function( str ){
        this.texte = str;
    };
     
    MotionInfo.prototype.getTexte = function( str ){
        return this.texte;
    };
     
    var MotionHRMInfo = function( name, nombre ){
        MotionInfo.call( this, name );
        this.nombre = nombre;
    };
     
    MotionHRMInfo.prototype = Object.create( MotionInfo.prototype );
     
    MotionHRMInfo.prototype.setNombre = function( n ){
        this.nombre = n;
    };
     
    MotionHRMInfo.prototype.getNombre = function( n ){
        return this.nombre;
    };
     
    var ObjMI = new MotionInfo( "Pierre" ),
        ObjHRMMI = new MotionHRMInfo( "Hector", 22 );
     
    // debug, console, touche F12
    console.log( "ObjMI = ", ObjMI );
    console.log( "ObjHRMMI = ", ObjHRMMI );
    console.log( "ObjHRMMI instanceof MotionInfo = ", ObjHRMMI instanceof MotionInfo );
     
    ObjMI.setTexte( "Jean" );
    ObjHRMMI.setNombre( 42 );
     
    console.log( "ObjMI.getTexte() = ", ObjMI.getTexte() );
    console.log( "ObjHRMMI.getTexte() = ", ObjHRMMI.getTexte() );
    console.log( "ObjHRMMI.getNombre() = ", ObjHRMMI.getNombre() );

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Candidat au Club
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Mars 2013
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par d�faut
    Merci de votre r�ponse et pour le code.

    Mais je ne comprend toujours pas � quelle moment l'h�ritage se fait ?
    L'objet fille doit-il avoir le m�me nom que l'objet m�re se trouvant dans ma biblioth�que pour que l'h�ritage se fasse automatiquement ?
    Ci-dessous mes 2 fonctions avec commentaires:
    Je voudrais savoir ce que veut dire "@super", et aussi si quelqu'un serait capable de m'expliquer clairement comment h�rit� en JS...?

    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
    /**
     * This is a common abstract interface used by different types of motion information objects.
     *
     * @super Object
     * @constructor
     * @return {MotionInfo}
     */
    function MotionInfo() {};
    MotionInfo.prototype = new Object();
     
    /**
     * This interface represents HRM data.
     *
     * @super Object
     * @constructor
     * @return {MotionHRMInfo}
     */
    function MotionHRMInfo() {};
    MotionHRMInfo.prototype = new MotionInfo();
    Cordialement,
    Kaniar Kode

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    merci d'utiliser la balise code bouton # dans l'�diteur

    tout ce qui est dans est un commentaire. �a n'a donc rien � voir avec l'h�ritage.

    les outils pour documenter le code utilisent les commentaires pour fournir de la doc.
    pour diff�rencier un commentaire simple d'un commentaire fournissant une doc on utilise la notation
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    /*
     * Ceci est un commentaire
     */
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    /**
     * ceci est du point de vu Javascript un commentaire
     * mais les outils de documentation récupère le contenu
     * pour faire la doc
     */
    les annotations n'existent pas en javascript.
    les @toto n'ont aucunes signification pour javascript.
    situ� dans un bloc de documentation elles peuvent �tre utilis� par l'outil de doc pour fournir de l'information
    @constructor indique dans la doc que la fonction est un constructeur.

    mais tout cela n'a absolument rien � voir avec javascript.

    tu peux regarder le cours
    http://t-templier.developpez.com/tut...vascript-poo1/
    il n'est pas trop mal.
    une petite note tout de m�me ce cours date un petit peu et niveau syntaxe on recommande aujourd'hui d'utiliser var obj = {}; � la place de var obj = new Object();. De m�me pour la d�claration de tableau.

    celui-ci est bien aussi il explique bien la notion de prototype de javascript bien qu'ensuite il traite d'une lib
    http://sii-rennes.developpez.com/tut...rientee-objet/
    A+JYT

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : B�timent

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par d�faut
    Bonjour,
    Pour l'h�ritage de javascript, il y a plusieurs mani�res. Celle que tu utilise se base sur des fonctions constructeurs et les prototype, �a t'oblige acr�er tes objets avec la commande new.
    Je vais expliquer ton code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    function MotionInfo() {} //Création du constructeur MotionInfo
    MotionInfo.prototype = new Object();  //Inicialisation du prototype de MotionInfo avec un object vide (ligne non nécésaire, elle permet de vider d'éventuels prototype parasite)
     
    function MotionHRMInfo() {}  //Création du constructeur MotionHRMInfo
    MotionHRMInfo.prototype = new MotionInfo(); //Inisialisation du prototype MotionHRMInfo avec un nouvel object MotionInfo. C'est là que se fait l'héritage MotionInfo (parent) MotionHRMInfo (enfant)
    C'est plus int�ressant avec des atributs et des m�thodes:
    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
    31
    32
    33
    34
    35
     
    function MotionInfo() {
      this.a = "Salut";
      this.b = 25;
    }
    MotionInfo.prototype.geta = function(){
      return this.a;
    };
     
    function MotionHRMInfo() {
      this.a = "Bay";
      this.c = 45;
    }
    MotionHRMInfo.prototype = new MotionInfo(); //L'héritage se fait à cette ligne
    MotionHRMInfo.prototype.getc = function(){
     return this.c;
    };
     
    var hrm1 = new MotionHRMInfo();
    var hrm2 = new MotionHRMInfo();
     
    hrm1.a = "Bonjour";
    hrm1.b = 10;
    hrm1.c = 10;
    console.log("hrm1.a = " + hrm1.a);
    console.log("hrm1.geta() = " + hrm1.geta());
    console.log("hrm2.a = " + hrm2.a);
    console.log("hrm2.geta() = " + hrm2.geta());
     
    console.log("hrm1.b = " + hrm1.b);
    console.log("hrm2.b = " + hrm2.b);
     
     
    console.log("hrm1.c = " + hrm1.c);
    console.log("hrm2.c = " + hrm2.c);
    Fais des testes de la sorte, �a va t'aider � comprendre.
    Bon courage.

Discussions similaires

  1. H�ritage en javascript
    Par Attrox dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 27/09/2014, 14h57
  2. H�ritage en JavaScript
    Par scandinave dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 06/02/2013, 19h05
  3. Balise OBJECT et h�ritage (css/javascript)
    Par Dionyzos dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 5
    Dernier message: 01/04/2007, 11h08
  4. Un pseudo h�ritage en javascript
    Par sekaijin dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 05/07/2006, 11h31

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