Javascript中的回调函数

参考文章:https://www.zhihu.com/question/19801131/answer/91780287

A “callback” is any function that is called by another function which takes the first function as a parameter. (在一个函数中调用另外一个函数就是callback)

function callback() {
    alert("I am in the callback!");
}

function work(func) {
    alert("I am calling the callback!");
    func(); 
}

work(callback);

这就是一个很简单的callback
callback 作为一个变量传入函数work 中 在work 中被调用

然后来说一下callback经常的使用场景:
A lot of the time, a “callback” is a function that is called when something happens. That something can be called an “event” in programmer-speak.(很多时候 callback 都是用来执行事件驱动的任务 比如有货了通知我 | 你到家了再叫我做饭 等等之类的 )

举个简单的例子 对一个文件的读入
如果不用callback

fileObject = open(file)
#我们必须等到文件打开才能进行读入 在这之前我们不能做其他事情
fileObject.write("We are writing to the file.")

使用callback

# 我们把writeToFile 为一个function 传入open writeToFile就是一个callback function
fileObject = open(file, writeToFile)
# 我们不需要一直等着这个文件打开
# 文件打开的时候 他就会执行callback 也就是writeToFile(具体实现 可以用promise) 在这之前我们可以做其他事情

注:使用回调时候,我们把open和write写在了一起,这样就不用等open完再调用write了,这样我们就省去一步,open完就回调write。所以我们在open的时候就可以去做另外的事,比如open第二本书,因为open第一本书的时候,我们会自动回调write。

另一个角度思考,回调函数可以帮我们确保某些代码执行顺序,某些代码直到另一些代码已经执行完毕才执行。

完整实例代码:

function openFile(filePath,callback){
    alert('start opening file in'+filePath);
    callback();//when finished,execute callback()
}

function writeToFile(){
    alert('i'm now writing file');
}

openFile('c://test.csv',writeToFile);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript回调函数是一种常见的编程模式,用于处理异步操作和事件处理。回调函数是作为参数传递给其他函数,并在特定事件发生或异步操作完成时被调用。 以下是使用回调函数的示例: ```javascript function fetchData(callback) { // 模拟异步操作 setTimeout(function() { var data = "这是异步操作返回的数据"; callback(data); // 调用回调函数并传递数据 }, 1000); } function process(data) { console.log("处理数据:" + data);} fetchData(process); ``` 在上述示例,`fetchData`函数模拟了一个异步操作,通过`setTimeout`延迟1秒钟后返回数据。在`fetchData`函数内部,我们调用了传递给它的回调函数,并将数据作为参数传递给回调函数。 `process`函数是一个回调函数,在数据返回后被调用,并对数据进行处理。在这个例子,我们将返回的数据打印到控制台上。 回调函数还可以用于处理事件: ```javascript var button = document.getElementById("myButton"); function handleClick() { console.log("按钮被点击"); } button.addEventListener("click", handleClick); ``` 在上述示例,我们给id为"myButton"的按钮添加了一个点击事件的监听器。当按钮被点击时,回调函数`handleClick`会被调用。 回调函数是一种强大的工具,可以使代码更具灵活性和可扩展性。通过将函数作为参数传递,我们可以在特定事件发生或异步操作完成后执行特定的逻辑。这种模式在处理异步请求、事件处理、定时器等方面非常常见和有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值