我对回调函数有准确的理解吗?
Do I have an accurate understanding of callback functions?
我做Javascript修理工已经有一段时间了,最近我一直在努力更好地理解我写的代码。我想要真正擅长编写Javascript。其中一件让我有点困惑的事情是回调函数的用法。到目前为止,我一直避免使用回调。现在,我想知道我对基本回调如何工作的理解是否准确,我对参数和参数的理解是否准确,最后,在这个场景中使用回调的目的是什么。使用下面创建的回调函数有什么好处吗?如果不是,回调函数什么时候最有用?我意识到我在下面写的东西很长,所以对于TLDR人:我认为这是对的吗?就好像我在"myFunction"中创建了函数"callback"?如果是这样,下面的场景有什么好处?为什么不直接调用函数呢?为什么必须调用的函数是一个参数在"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
来实现的一件事。
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定