Je travaille avec un programme Javascript assez complexe qui, à un point donné, renvoie des fonctions anonymes imbriquées.Javascript L'instance de la fonction est automatiquement convertie en objet et ne peut plus être appelée
Parfois, lorsque je tente de « appliquer » l'une de ces fonctions anonymes (« f » dans cet exemple) ...
f.apply (this.context, args)
... Je reçois un « f.apply n'est pas une fonction " Erreur.
C'est bizarre, car alert (f) affiche le code source de la fonction mais typeof (f) renvoie "object" (pas "function").
alert (f) --> displays "function (input) { self.checkToken (input, regex, callback) }"
De même, f.call et f.apply ne sont pas définis.
La vérification du typeof (f) à certaines étapes de l'exécution renvoie toujours "function". Je ne peux pas expliquer pourquoi, quand j'ai besoin d'appeler la fonction, elle jette un objet.
J'ai testé le code contre Firefox et le moteur Microsoft JScript, obtenant les mêmes résultats.
Peut-être que je manque un aspect de base des blocs anonymes Javascript? : - \
Vous devriez publier une partie du code concerné. – Pointy
Oui, je pensais qu'il serait préférable de poster du code, mais j'ai réalisé que peut-être lire 2.5k lignes de code est beaucoup plus que je peux vous demander :) Je vais essayer de reproduire l'erreur et coller un petit extrait. –