Salut tout le monde ;-)

Tout d'abord je tenais à mettre un message pour le créateur de Grafikart... Tes tutos sont toujours passionnant, tu es un très bon pédagogue.. et vraiment, merci pour tout ! :)

J'ai un petit problème en javascript orienté object. Malgré mes recherches, j'ai pas trouvé la solution...

Voici un cas que j'ai écrit pour l'exemple...

var Maison = {
    vendu:false,
    avecPiscine: false,
    pieces: 'Cuisine'],
    mettreEnVente:function() {
        $.each(this.pieces, function(key, value) {
            if (value == 'Piscine') {
                // Et là par exemple je souhaiterais passer "avecPiscine" à true... 
                // Mais je ne vois pas trop comment modifier l'instance de maison quand je suis arrivé là
            }
        } )
    }
}
var villa = Object.create(Maison);
villa.pieces = 'Chambres','Piscine','Salon'];
villa.mettreEnVente();
console.log(villa);

Du coup comme mentionné dans le commentaire, mon problème est que je souhaiterais modifier la propriété de mon instance... dans le callback du each... et donc la seule solution totalement insatisfaisante mais que j'ai trouvé pour cette exemple, serait de faire un

villa.avecPiscine = true;

... dans le each...

Donc ça, ça fonctionne... dans l'idée où je créé qu'une seule instance ( Bref... ^^ )

Je vous remercie d'avance pour vos lumières :)

Yo

2 réponses


antho07
Réponse acceptée
var Maison = function() {
    var Me = this;
    this.vendu=false;
    this.avecPiscine= false;
    this.pieces = 'Cuisine'];
    this.mettreEnVente = function() {
        $.each(this.pieces, function(key, value) {
            if (value == 'Piscine') {
                Me.avecPiscine = true;
            }
        } )
    }
}
var villa = new Maison();
villa.pieces = 'Chambres','Piscine','Salon'];

villa.mettreEnVente();

Maintenant tu peux aussi ne pas tout exposer et faire des getters setters , simuler des variables privées en quelques sortes etc...

Y0ann
Auteur

Merci pour la lumière antho tu me débloques bien !

Yo