Les experts font un détour ! Cela n'a rien à voir avec la fermeture elle-même. Je ne sais pas comment choisir le titre, j'ai juste inventé le numéro. J'espère que vous pourrez me pardonner !
Aujourd'hui, un ami qui vient d'apprendre js m'a donné un morceau de code pour me demander pourquoi la méthode n'est pas exécutée. Le code est le suivant :
function makefunc(x) {
return function ( ; C'est "0", pas function (){return x;}.
Ce n'est pas que le script a été mal écrit, c'est juste que je n'ai pas compris le retour Quitter la fonction actuelle et renvoyer une valeur de cette fonction. Si une fonction est renvoyée, alors la fonction elle-même est renvoyée.
Vous pouvez modifier le code ci-dessus comme ceci, qui est alert(makefunc(0)()) :
Copiez le code
Le code est le suivant :
alert(makefunc(0 )());
Si vous souhaitez renvoyer le résultat de l'exécution de la fonction, vous devez d'abord laisser la fonction s'exécuter, par exemple :
Copier le code
Le code est le suivant :
alert(makefunc(0) );
Il y a une fonction anonyme ici,
Copier le code
Le code est le suivant :
est une fonction anonyme dans la première parenthèse et la deuxième parenthèse sont utilisées pour appeler cette fonction anonyme, vous pouvez transmettre les paramètres requis dans la deuxième parenthèse. Par exemple :
Copier le code
Le code est le suivant :
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn