Bonjour,
J'aimerais utiliser des getters et des setters en javascript. J'ai �cris :
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 var MaClass = function() { this.attribut; } MaClass.prototype = { getAttribut: function() {return this.attribut;}, setAttribut: function(value) {this.attribut = value;} }
dans ce cas, regardez le code suivant :
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;} }
Evidemment, ce n'est pas ce qui �tait attendu.
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
Il existe bien une solution na�ve pour r�gler le probl�me :
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 !
Code : S�lectionner tout - Visualiser dans une fen�tre � part objet1.setAttribut(objet1.getAttribut().setCore());
Question : existe-t-il un autre moyen de r�gler ce probl�me?
Partager