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?