gpt4 book ai didi

javascript - 了解 javascript 中的回调和返回函数

转载 作者:行者123 更新时间:2023-12-01 01:30:41 25 4
gpt4 key购买 nike

我是编程新手,并试图了解回调函数和一般函数。该程序比较函数中传递的 2 个值(使用回调)并向我们返回 true/false。

function func1(param1, callback) {
return callback(param1);
}

function func2(param2) {
return function(param3) {
return param3 > param2;
}
}

var functionResult = func1(10, func2(9));
console.log(functionResult); // prints - true

问题 - 在上面的程序中,func2 函数中的 return 函数如何直接将值返回给我们,而不被调用?我认为在这一行中 var functionResult = func1(10, func2(9)); func2(9) 将仅返回文本

function(param3) {
return param3 > param2;
}

然后我必须用 () 再次调用它。

最佳答案

how does the return function inside the func2 function, return the value directly to us, without being invoked?

它被调用。 func1 在这里调用它:

callback(param1)

func2(9) will return only the text ...

这不是文本,实际上是一个函数(对象)。它被传递给 func1,后者又调用它并返回其返回值。

and then I would have to invoke it again with ().

是的,这也是 func1 的作用:

callback(param1)
<小时/>

让我们把事情拆开:

 var functionResult = func1(10, func2(9)); 

相同
var func2Result = func2(9);
var functionResult = func1(10, func2Result);

由于我们知道 func1 的作用,我们可以用它的实现替换对它的调用。 10 作为 param1 传递,func2Result 作为 callback 传递,因此代码变为:

var func2Result = func2(9);
var functionResult = func2Result(10); // callback(param1);

现在您应该能够看到实际上调用了 func2 的返回值。

关于javascript - 了解 javascript 中的回调和返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com