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?