Appel Javascript fonction parent
Question à l'intérieur de la description
function Parent(){
this.alertParent(){
alert("Parent alert");
}
function child(){
//how can I call to this.alertParent() from here without passing any
//parameters?
}
}
OriginalL'auteur Ilya Gazman | 2012-06-09
Vous devez vous connecter pour publier un commentaire.
Le titre de votre question est source de confusion. Le terme familier de "parent" de la fonction est plutôt utilisé pour la appel fonction.
Dans votre cas, vous avez deux fonctions à l'intérieur d'une fonction constructeur et vous voulez juste pour appeler l'un de l'autre. Plus précisément, vous voulez appeler une "public" méthode à partir d'un "privé" de la méthode (j'ai mis ces termes entre guillemets parce que le JavaScript ne prend pas en charge la visibilité et ce sont solution de contournement pour obtenir le même).
Il suffit de garder une référence à l'instance en cours:
child
ferme au cours de toutes les variables dans le contexte, il est défini, de sorte à ce que l'accès à l'self
.this
de changement de cours [MDN].Au lieu de créer une fermeture, vous pouvez également passer l'instance explicitement à
child
, à l'aide.call()
[MDN] ou.appliquer()
[MDN].De sorte que votre définition de la fonction de séjours
et lorsque vous appelez la fonction, vous appeler, par exemple avec
child.call(this)
si vous savez quethis
se réfère à votre instance (au lieu dethis
il peut être n'importe quelle autre variable).OriginalL'auteur Felix Kling
Votre code d'erreur de syntaxe. Peut-être que vous signifie:
Qu'entendez-vous par enfant est un paramètre?
OriginalL'auteur xdazz