Cet article résume les problèmes communs dans la définition de la fonction JavaScript. Il contient des erreurs courantes commises par les débutants. Partagez-le pour votre référence. Le résumé spécifique est le suivant:
1. En même temps que la déclaration de fonction, le moteur JS définit également une variable avec le même nom que le nom de la fonction. Lorsque nous appelons cette fonction, nous utilisons réellement cette variable, et elle peut être appelée avant la déclaration de fonction, par exemple
foo (); // Une variable de fonction est en fait utilisée ici function foo () {alert ('hello'); }2. Expression de la fonction, pour le moment, la fonction anonyme est attribuée à une variable, qui doit être utilisée après définition, par exemple
foo (); // une erreur est rapportée, non définie var foo = function () {alert ('hello'); }3. Expression de la fonction (avec nom de fonction), cette utilisation est mieux évitée. Pour le moment, le nom de la fonction n'est disponible en interne que dans des navigateurs non IE, par exemple
bar (5); // Une erreur est rapportée, non définie Var Bar = fonction foo (n) {if (n == 1) return 1; else return n * foo (n - 1); } foo (5); // pas d'erreur IE est signalé, barre non définie (5); //Correct4. Définition avec constructeur de fonction, cette méthode est inefficace. Chaque fois qu'une fonction est exécutée, son corps de fonction sera analysé une fois. De plus, la fonction déclarée de cette manière n'en héritera pas la portée de l'emplacement actuel déclaré. Il n'aura qu'une portée globale par défaut, par exemple
fonction foo () {var bar = 'hello'; Fonction de retour ('alert (bar)'); // Une erreur est rapportée, la barre variable globale n'est pas définie} foo () ();Je crois que la description de cet article a une certaine valeur de référence pour l'apprentissage de chacun de la programmation Web JavaScript.