Javascript 为什么需要运行callback()函数才能使回调函数工作?

Javascript 为什么需要运行callback()函数才能使回调函数工作?,javascript,function,Javascript,Function,我现在正在学习回调,那里没有那么多有用的帖子。我想知道为什么需要运行callback()才能使函数工作? 代码: 函数createQuote(quote,回调){ 警报(报价); 回调(); } createQuote('我是托比',函数(){ 警报(“最后”); }); 如果不运行回调,会有什么不同?会提供同样的结果吗? 非常感谢您的帮助。在本例中,您只需将回调函数传递给createQuote函数。 CreateQuote不知道如何处理回调或何时执行回调,因此您必须告诉它自己运行回调 cr

我现在正在学习回调,那里没有那么多有用的帖子。我想知道为什么需要运行callback()才能使函数工作? 代码:


函数createQuote(quote,回调){
警报(报价);
回调();
}
createQuote('我是托比',函数(){
警报(“最后”);
});
如果不运行回调,会有什么不同?会提供同样的结果吗?
非常感谢您的帮助。

在本例中,您只需将回调函数传递给createQuote函数。 CreateQuote不知道如何处理回调或何时执行回调,因此您必须告诉它自己运行回调


createQuote如何知道何时调用回调?在调用之前,您可能有很多代码为回调提供数据。

在本例中,您只需将回调函数传递给createQuote函数。 CreateQuote不知道如何处理回调或何时执行回调,因此您必须告诉它自己运行回调


createQuote如何知道何时调用回调?在调用之前,可能有很多代码为回调提供数据。

回调需要像使用输入的值一样运行。如果不使用变量
quote
,那么这是无用的,回调也是如此,如果不调用回调,则不会发生任何事情,代码也不会运行

回调非常有用,例如,当您想执行某项操作,并在该操作完成后运行代码时,您必须在函数中调用回调以了解何时何地在函数中运行代码

函数内部的代码不会在声明它们时运行,而只在调用函数时运行。当您以回调的形式传入函数时,不调用该函数,只传入名称

示例:

function callFunction(callback){
    console.log("doing stuff")
    callback()    //runs the function you pass in
    console.log("after callback")
}

function sayHello(){
    console.log("hello")
}

callFunction(sayHello) // not callFunction(sayHello())
//prints in the console:
//doing stuff
//hello
//after callback

回调需要像使用输入的值一样运行。如果不使用变量
quote
,那么这是无用的,回调也是如此,如果不调用回调,则不会发生任何事情,代码也不会运行

回调非常有用,例如,当您想执行某项操作,并在该操作完成后运行代码时,您必须在函数中调用回调以了解何时何地在函数中运行代码

函数内部的代码不会在声明它们时运行,而只在调用函数时运行。当您以回调的形式传入函数时,不调用该函数,只传入名称

示例:

function callFunction(callback){
    console.log("doing stuff")
    callback()    //runs the function you pass in
    console.log("after callback")
}

function sayHello(){
    console.log("hello")
}

callFunction(sayHello) // not callFunction(sayHello())
//prints in the console:
//doing stuff
//hello
//after callback

“如果不运行回调,会有什么区别?”为什么不尝试它?您正在将匿名函数作为参数
回调
传递给createQuote函数。然后使用
callback()
按名称调用该函数。如果不调用该函数,将如何调用该函数?@TobyHarnish:运行该代码时会发生什么?这和你预期的不同吗?你以为会发生什么?为什么?你可以花一整天的时间询问堆栈溢出代码的作用,也可以测试代码并找出答案。没有什么地方说回调必须是匿名函数。它的编写方式必须是函数/方法。“如果不运行回调,会有什么区别?”为什么不尝试它?您正在将匿名函数作为参数
callback
传递给createQuote函数。然后使用
callback()
按名称调用该函数。如果不调用该函数,将如何调用该函数?@TobyHarnish:运行该代码时会发生什么?这和你预期的不同吗?你以为会发生什么?为什么?你可以花一整天的时间询问堆栈溢出代码的作用,也可以测试代码并找出答案。没有什么地方说回调必须是匿名函数。它必须是一个函数/方法。