javascript - Le problème des fermetures dans js. J'ai eu du mal à le résoudre hier soir et je suis presque mort maintenant.
迷茫
迷茫 2017-06-05 11:13:08
0
6
653

Parce que je viens juste de commencer à apprendre les fermetures, je n'ai pas compris beaucoup de choses. Comment avez-vous obtenu le undefined dans la console comme indiqué sur l'image ? J'ai seulement exécuté la fonction return, pourquoi y a-t-il deux résultats d'exécution ? Les gars, veuillez expliquer en détail ~

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(6)
某草草

Vous pouvez répéter les deux morceaux de code suivants pour commencer par
var result = f1(); La variable pointe vers la fonction var result = f1(); 變量指向函數
console.log(result()) 其實可以轉話為 f1()()
即函數執行 f1()返回的函數,即f2() 所以首先會執行 f1()下的f2() 函數 再執行f1()
所以首先console.log(n)1
在執行函數f1()時候return f2 ,但由於函數沒有對返回值,所以打印出undefinedconsole.log(result()) En fait, vous pouvez changer la conversation pour f1()()

c'est-à-dire la fonction renvoyée en exécutant f1(), c'est-à-dire f2() , donc f1 sera exécuté en premier. La fonction f2() sous () exécute ensuite f1()🎜Donc d'abord console.log(n) vaut 1🎜Lors de l'exécution de la fonction f1(), return f2 est imprimé, mais comme le la fonction ne renvoie pas de valeur, undefined est imprimé 🎜.
世界只因有你

Essentiellement

var n = 1;
function f2() {
    console.log(n);
}

console.log(f2())

Parce que votre f2 ne renvoie pas de valeur, il n'est donc pas défini

伊谢尔伦

console.log(result())
Première sortie 1, car result() appelle f2()
Ensuite, la sortie n'est pas définie, car result() n'a pas de valeur de retour

为情所困

http://www.liaoxuefeng.com/wi...

Je vous suggère de lire ceci

大家讲道理

First result=f1(); À ce moment, result=f2;
Puis console.log(result()); Exécutez d'abord le résultat, qui est f2, et imprimez la valeur de n Parce que vous n'avez pas exécuté le test, n. est 1, donc ce qui est imprimé est 1. Ensuite, exécutez console.log(result()); car result() n'a pas de valeur de retour, elle n'est pas définie.

世界只因有你

console.log(console.log()) doit être indéfini, grand frère

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal