11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
En lui envoyant son parent lors de la construction :
function c2(parent) {
    this.parent = parent;
    this.showParent = function() {
        console.debug(this.parent);
    }
}

function c1() {
    this.b = new c2(this);
}

var a = new c1();
a.b.showParent();

Modifié par Gothor (09 Apr 2012 - 16:53)
Comme un objet n'est qu'une référence et que plusieurs références peuvent pointer la même ressource, on ne peut pas définir quel est le parent d'un élément.

La réponse précédente est donc bonne, il faut passer le parent si on souhaite l'utiliser plus loin. Cela dit, l'exemple précédent est peut-être compliquer. En gros le principe sera simplement ça:


var that = bidule;
bidule.truc.machiner(function () {
  this; // référence à l'instance courante de la fonction anonyme (par défaut)
  that; // référence à l'objet bidule déclaré plus haut
  bidule; // référence à l'objet bidule puisqu'il existe encore à ce point
});


(Évidemment, dans ce cas, on peut simplement appeler bidule)

Si tu as un exemple plus concret, peut-être pourras-tu avoir un peu plus d'aide !
Hello.

Pour faire plus simple, si tu connais le nom de bidule, tu peux utiliser bidule :
var bidule = {};
bidule.truc = {};
bidule.truc.bla = function () {
    alert('a')
};
bidule.truc.toto = function () {
    bidule.truc.bla();
}
bidule.truc.toto(); //alert 'a'
Mais d'accord avec Vaxilart, difficile de vraiment t'aider sans savoir ce que tu souhaites faire.
La réponse précédente est donc bonne, il faut passer le parent si on souhaite l'utiliser plus loin.
Modifié par 6l20 (11 Apr 2012 - 08:48)