为了账号安全,请及时绑定邮箱和手机立即绑定

这如何运作?我不明白这个摘要

这如何运作?我不明白这个摘要

湖上湖 2021-04-12 16:19:54
let unrealFunctionToUnderstand = () => {    let tryToUnderstandThis = () => 666;    console.log('I\'m calling once time! :D');    return tryToUnderstandThis;}let hardcoreLesson = unrealFunctionToUnderstand();console.log(hardcoreLesson());console.log(hardcoreLesson());我听不懂这段代码,我的朋友给我发了这个...
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

unrealFunctionToUnderstand是一个功能。调用时记录“我一次打过电话!:D”。

tryToUnderstandThis调用时它还会返回另一个函数()。

定义此函数后,您将(1)对其进行调用unrealFunctionToUnderstand(),然后(2)将其返回值(tryToUnderstandThis)分配给hardcoreLesson。然后,您要调用hardcoreLesson(引用到tryToUnderstandThis)两次并记录结果。

因此,您呼叫unrealFunctionToUnderstand一次,并且记录为“我一次呼叫!:D”,然后呼叫tryToUnderstandThis两次,并且记录为“ 666”两次。

您能注意到我是如何在纸上“运行”此代码的吗?这就是您自己回答此类问题的方式。您在纸上用与浏览器相同的方式解释代码。查明您尚不了解或不知道的语言结构变得更加容易,因此您可以首先学习/询问这些结构。这样,如果您理解了每个部分,就可以清楚地知道执行了什么以及为什么执行。


查看完整回答
反对 回复 2021-04-22
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

javascript中的所有内容都是一个对象,包括函数。这意味着您可以从函数中返回一个函数。


就是这样unrealFunctionToUnderstand()-它是一个返回函数的函数。


因此,您只需调用一次即可:


let hardcoreLesson = unrealFunctionToUnderstand();

因此,控制台输出仅显示一次。现在,您可以引用一个仅返回值的函数666。


let tryToUnderstandThis = () => 666;

....

return tryToUnderstandThis;

执行该操作后,您将获得响应。


查看完整回答
反对 回复 2021-04-22
  • 3 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信