我对回调函数有正确的了解吗?

Codebmanj

我从事Java修补程序工作已经有一段时间了,最​​近我一直在努力对自己编写的代码有一个很好的了解。我想变得非常擅长编写Javascript。使我有些困惑的事情之一是回调函数的使用。到目前为止,我一直避免使用回调。现在,我想知道我对基本回调如何工作的理解是否正确,以及对参数和参数的理解是否正确,最后,在这种情况下使用回调的目的是什么。使用下面创建的回调函数有好处吗?如果没有,那么什么时候回调函数才是最有益的呢?我意识到我在下面写的内容相当冗长,因此对于TLDR人员来说:我想的对吗,好像我在“ myFunction”中创建了函数“ theCallback”一样?如果是这样,在以下情况下有什么好处?为什么不只调用一个函数呢?为什么被调用的函数必须是“ myFunction”函数中的参数?
如果下面的情况不需要使用回调,那么什么时候有必要,这样做有什么好处?谢谢。

这是我看下面代码的方式:我创建了带有两个参数“ x”和“回调”的工厂函数“ myFunction”,参数是很多变量,在调用该函数时将与参数一起存储。我还创建了另一个带有两个参数“ x”和“ theValue”的工厂函数“ theCallback”。现在,由于这些是工厂功能,因此无论它们位于对“ myFunction”的函数调用之下,它们都将被吊在函数调用之上,因此不会出现问题。如果我创建了一个带有变量的函数表达式,它们将不会被吊起。因此,现在我对“ myFunction”的调用有两个参数,其中的参数将被定义为“ 3”和“ theCallback”。“ theCallback”参数是一个函数。该函数具有两个参数“ x”和“ theValue”。调用“ myFunction”时,将“ x”与参数“ 3”一起存储,并将“回调”与函数“ theCallback”一起存储,然后执行“ myFunction”中的代码,该代码只是声明并分配了值的变量包含文本“用于回调”和回调变量(我正在查看为变量)的字符串的值,该参数是一个参数,该参数现在是我创建的“ theCallback”函数的参数,该函数本身也包含参数调用,并为其提供要执行的代码的参数。在这种情况下,它将执行的代码调用内置的警报函数(或窗口对象的方法?),并为警报函数提供一个字符串参数,接下来是使用参数x再次存储的警报函数,参数x存储在“ 3”中,然后再次调用alert并给出参数“ theValue”,其中包含字符串“ for callback”。现在,当将“ theCallback”函数作为第二个参数传递给“ myFunction”并存储在“ callback”中时,就好像我在“ myFunction”中创建了函数“ theCallback”一样吗?如果是这样,在以下情况下有什么好处?为什么不仅仅调用一个函数,为什么必须在“ myFunction”函数中将被调用的函数作为参数?其中包含字符串“用于回调”。现在,当将“ theCallback”函数作为第二个参数传递给“ myFunction”并存储在“ callback”中时,就好像我在“ myFunction”中创建了函数“ theCallback”一样吗?如果是这样,在以下情况下有什么好处?为什么不仅仅调用一个函数,为什么必须在“ myFunction”函数中将被调用的函数作为参数?其中包含字符串“用于回调”。现在,当将“ theCallback”函数作为第二个参数传递给“ myFunction”并存储在“ callback”中时,就好像我在“ myFunction”中创建了函数“ theCallback”一样吗?如果是这样,在以下情况下有什么好处?为什么不仅仅调用一个函数,为什么必须在“ myFunction”函数中将被调用的函数作为参数?
如果下面的情况不需要使用回调,那么什么时候有必要,这样做有什么好处?

myFunction(3, theCallback);

function myFunction(x, callback){
  var value = 'for the callback';    
  callback(x, value);    
}

function theCallback(x, theValue){
  alert('this is the callback function');
  alert(x);
  alert(theValue);  
}
昆汀

使用下面创建的回调函数有好处吗?

这有点主观。那里不需要使用回调。通常,您会从一个函数返回数据并将其传递给另一个函数。

回调函数什么时候最有用?

当事件触发后而不是立即处理数据时。例如,当单击按钮或触发HTTP响应时。

myButton.addEventListener("click", myCallbackFunction);

我创建了一个工厂函数“ myFunction”

不,那只是一个功能。工厂函数创建类对象。

他们将被吊起

悬挂函数声明(与函数表达式相反)。不过,这与回调无关。回调基本上是一个作为参数传递的函数,它的创建方式无关紧要。

有什么好处

好处是,根据情况,事件触发时,您可能会发生不同的事情。

以上面的点击事件为例。通常,您希望单击不同的东西具有不同的效果,而不是addEventListener由浏览器供应商硬编码完成的一件事

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章