est-il possible d'appeler de manière récursive une méthode d'un objet littéral?
Par exemple: p> erreur: "F 'a été utilisé avant de définir. < / p> merci. p> p>
3 Réponses :
Il n'y a pas de variable appelée f code> défini n'importe où dans votre code. Utilisez obj.f () code> (ou this.f code> si vous savez ce code> pointe sur l'endroit où il devrait). P>
Notez simplement que l'intérieur du Si vous faites quelque chose comme: maintenant f code> est une méthode em> sur votre objet. En conséquence, lorsque vous êtes dans F code>, Ceci code> sera l'objet auquel f code> est connecté. Afin d'appeler de manière récursive f code>, utilisez this.f () code>
f < / code>, ceci code> ne sera l'objet actuel que si f code> est invoqué comme méthode: obj.f (); code> p> p> p> obj.f.call (LALA); code>, alors ceci code> sera maintenant lala code>. Et si vous faites quelque chose comme: p> Ce code> est l'objet global à l'intérieur de f code> (ou non défini dans strict mode) p> p>
Ceci code> peut ou non Pointer ou non sur obj code> en fonction de la manière dont f code> est appelé. Mieux vaut faire cela clair avant que cela mord le gars plus tard.
@Mattivirkkunen - En effet - édité. Merci pour la pointe et profitez de vos nouveaux badges :)
Yay !
Vous pouvez, en utilisant une expression de fonction nommée em>: une lecture incorrecte: http://kangax.github.com/nfe/ p> p>
Cela devrait être la réponse choisie. Merci pour le lien aussi.
Qu'est-ce que cela fait exactement une fonction nommée fait qui contourne l'erreur? Créer sa propre fermeture?