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 :

[POO] Heritage en javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [POO] Heritage en javascript
    Bonjour,

    je sollicite votre aide dans la compréhension, de l'héritage en java script, voici ma demande.

    je souhaite créer un objet calendrier qui hérite de l'objet Date, vous comprenez bien pourquoi.

    voici un exemple qui ne fonctionne pas :
    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
     
    // Objet Calendrier
    function Calendrier() {
    	//Passage de paramètres à l’objet père
    	Date.Call(this);
    }
     
    //qui hérite de Date
    Calendrier.prototype = new Date;
    //mais qui est de type Calendrier
    Calendrier.prototype.constructor = Calendrier;
    //Ajout d’une méthode au fils
    Calendrier.prototype.date = function() {
    	return this.getDate();
    }
     
    var monCalendrier = new Calendrier();
    alert(monCalendrier.date());
    Pouvez-vous m'expliquer pourquoi ce code ne fonctionne pas et m'aider dans l'héritage de l'objet Date.

    cordialement,
    MP59100

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    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
            // Objet Calendrier
    		var Calendrier = function () {
    		}
    		//qui hérite de Date
    		Calendrier.prototype.Date = new Date;
    		//Ajout d’une méthode au fils
    		Calendrier.prototype.date = function() {
    			return this.Date.getDate();
    		}
     
    		var monCalendrier = new Calendrier();
    		alert(monCalendrier.date());
    ?

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    A ma connaissance, tu ne peux pas hériter de l'objet Date. Le seul objet javascript dont on peut hériter est l'objet Object.

    2 solutions pour contourner le problème:
    - soit tu enrichies le prototype de Date directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date.prototype.foo = function(){alert("foo")};
    var d = new Date();
    d.foo();
    - soit tu crées un wrapper autour de date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function MaDate(){ this.d = new Date();}
    MaDate.prototype.time = function(){alert(this.d.getTime())}
    var d = new MaDate();
    d.time()

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Si c'est possible ;-)
    Méchanisme pour hériter de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var MyDate = function() {
      var date = new Date();
     
      date.myfunc = function() {
        return 'blah';
      };
     
      return date;  
    };
     
    var d = new MyDate();
    alert(d.myfunc() + ' ' + d.getMonth());

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

Discussions similaires

  1. [POO] Bonne maniére: Class et heritage en javascript
    Par visithierry dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/03/2009, 18h58
  2. [POO] Variables Globales Javascript
    Par escteban dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/06/2007, 06h17
  3. [POO] Objet en JavaScript
    Par BRAUKRIS dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/06/2006, 21h56
  4. [POO] Héritage multiple Parent
    Par djshaker dans le forum Langage
    Réponses: 15
    Dernier message: 15/03/2006, 17h35
  5. [POO] Heritage d'attribut statique surchargé !
    Par Jaxofun dans le forum Langage
    Réponses: 25
    Dernier message: 16/08/2005, 09h01

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