JavaScript中回调

1.先看一个回调函数的基本实现:

回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调.

// 声明一个函数,它的参数是一个函数fn
function example(fn)  {
    // 回调前,可以do something
    alert('我是回调前执行的代码');
    // 存在fn则直接用,不存fn在则用函数表达式的方式声明一个
    fn = fn || function() {};
    fn(); //  调用传进来的fn
}
// 调用传进来的fn
function callback() {
    alert('I am callback!')
}
example(callback); // 调用函数a

这个例子展示回调函数基本实现方法,实现回调的关键是把一个函数当成另一个参数。当然实践中很少用上面方式去使用回调函数,一般把一个匿名函数传入当成回调函数,这种方法在Javascript中使用非常广泛,下面是一个基本的例子。

// 声明一个函数,它的参数是一个函数fn
function example(fn) {
// 回调前,可以do something
    alert('我是回调前执行的代码');
    // 存在fn则直接用,不存fn在则用函数表达式的方式声明一个
    fn = fn || function() {};
    fn(); // 调用传进来的fn
}
// 把匿名函数当做参数
example(function()  {
    alert('I am callback!')
});

使用匿名函数作为参数,不仅可以极少代码,也让代码更好管理,更加灵活。

任何函数都是可以传入参数的,回调函数一样:

// 声明一个函数,它的参数是一个函数fn
function example(a, fn)  {
    // 回调前,可以do something
    alert(a);
    // 存在fn则直接用,不存fn在则用函数表达式的方式声明一个
    fn = fn || function() {};
    fn(m); // 调用传进来的fn
}
// 把匿名函数当做参数
var m = 'I am callback!';
example('我是回调前执行的
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值