js中关于闭包的问题,昨晚纠结到了现在,已经快死了

https://img2.mukewang.com/5c18773c000187db06690479.jpghttps://img1.mukewang.com/5c1877440001e46306320116.jpg

因为刚刚开始学习闭包很多地方没能理解到,如图所示在控制台中的 undefined是如何得到的? 我只执行了返回函数呀,为什么会有两个执行结果?请大佬们详解下~

隔江千里
浏览 482回答 1
1回答

心有法竹

你可以重最低下兩段代碼可以說起var result = f1(); 變量指向函數console.log(result()) 其實可以轉話為 f1()()即函數執行 f1()返回的函數,即f2() 所以首先會執行 f1()下的f2() 函數 再執行f1()所以首先console.log(n) 即1在執行函數f1()時候return f2 ,但由於函數沒有對返回值,所以打印出undefined
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript