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

let unrealFunctionToUnderstand = () => {

    let tryToUnderstandThis = () => 666;

    console.log('I\'m calling once time! :D');

    return tryToUnderstandThis;

}


let hardcoreLesson = unrealFunctionToUnderstand();


console.log(hardcoreLesson());

console.log(hardcoreLesson());

我听不懂这段代码,我的朋友给我发了这个...


湖上湖
浏览 141回答 3
3回答

元芳怎么了

unrealFunctionToUnderstand是一个功能。调用时记录“我一次打过电话!:D”。tryToUnderstandThis调用时它还会返回另一个函数()。定义此函数后,您将(1)对其进行调用unrealFunctionToUnderstand(),然后(2)将其返回值(tryToUnderstandThis)分配给hardcoreLesson。然后,您要调用hardcoreLesson(引用到tryToUnderstandThis)两次并记录结果。因此,您呼叫unrealFunctionToUnderstand一次,并且记录为“我一次呼叫!:D”,然后呼叫tryToUnderstandThis两次,并且记录为“ 666”两次。您能注意到我是如何在纸上“运行”此代码的吗?这就是您自己回答此类问题的方式。您在纸上用与浏览器相同的方式解释代码。查明您尚不了解或不知道的语言结构变得更加容易,因此您可以首先学习/询问这些结构。这样,如果您理解了每个部分,就可以清楚地知道执行了什么以及为什么执行。

白衣染霜花

javascript中的所有内容都是一个对象,包括函数。这意味着您可以从函数中返回一个函数。就是这样unrealFunctionToUnderstand()-它是一个返回函数的函数。因此,您只需调用一次即可:let hardcoreLesson = unrealFunctionToUnderstand();因此,控制台输出仅显示一次。现在,您可以引用一个仅返回值的函数666。let tryToUnderstandThis = () => 666;....return tryToUnderstandThis;执行该操作后,您将获得响应。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript