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 :

javascript OO : accesseurs


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut javascript OO : accesseurs
    Bonjour,

    J'aimerais utiliser des getters et des setters en javascript. J'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var MaClass = function() {
        this.attribut;
    }
    MaClass.prototype = {
        getAttribut: function() {return this.attribut;},
        setAttribut: function(value) {this.attribut = value;}
    }
    Jusqu'ici, tout va bien. Ca marche impeccable. Le problème vient quand l'un des attribut est aussi l'objet d'une classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var MaClass = function() {
        this.attribut = new Element();
    }
    MaClass.prototype = {...}
     
    var Element = function() {this.core = "truc";}
    Element.prototype = {
        getCore: function() {return this.core;},
        setCore: function(value) {this.core = value;}
    }
    dans ce cas, regardez le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var objet1 = new MaClass;
     
    objet1.getAttribut().setCore("bidule");
     
    alert(objet1.getAttribut().getCore();}
    //alert : truc
    Evidemment, ce n'est pas ce qui était attendu.
    Il existe bien une solution naïve pour régler le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objet1.setAttribut(objet1.getAttribut().setCore());
    Vous vous doutez bien que ce n'est pas satisfaisant, surtout que plus on va ajouter des niveaux, plus ça deviendra intenable. Imaginez que "core" soit aussi un objet !

    Question : existe-t-il un autre moyen de régler ce problème?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    J'ai testé ton code, ça marche très bien
    http://jsfiddle.net/Cyf36/

    Je ne vois pas le problème

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    ... C'est un fait...
    Je comprends plus rien...

    Bon, ben merci pour ta réponse, je vais me replonger dans le code pour comprendre pourquoi j'ai pas le même résultat.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Désolé ! Ca me faisait ça parce que le getter et le setter de ma classe utilisaient le localStorage !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getTruc = function() {localStorage.getItem("truc");}
    c'est sûr que je risque pas d'observer un changement si je fais pas un setTruc derrière !


    Merci encore. J'aurais au moins découvert jsFiddle, ça a l'air bien foutu

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

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  3. Construire chemin sur bouton avec évt Javascript
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/05/2003, 10h26
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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