JS-回调函数的写法

1,816 阅读1分钟

JS回调函数的写法

回调函数:当一个函数要实现某个功能时,将另一个功能函数作为参数传入,这样的功能函数叫回调函数

传入无参的回调函数

function fun(f){
    f()
}

function f1(){
    console.log("回调成功")
}
fun(f1)//回调成功

传入确定参数的回调函数

function fun(f,a,b){
    f(a,b)
}

function sum(a,b){
    console.log(a+b)
}
fun(sum,3,4)//结果为7

传入不定参数的回调函数

function fun(f,...arg){//用剩余参数收集参数
    console.log(...arg)//用展开语法展开剩余参数每一项,如果是[...arg],即展开成数组形式
    f(...arg)
}

function sum(a,b){
    console.log(a+b)
}
function cal(a,b,c,d){
    console.log(a+b*c-d)
}
fun(sum,3,4)//7
fun(cal,2,3,4,5)//9

传入不定参数的回调函数,匿名版

传入回调函数的参数位置可以直接使用匿名函数体直接传入

function fun(f,...arg){
    console.log(...arg)
    f(...arg)
}
fun((a,b)=>{//这里也可以使用最新的箭头函数声明方式
    console.log(a+b)
},3,4)//7
fun(function(a,b,c,d){
    console.log(a+b*c-d)
},2,3,4,5)//9

小注

  1. 箭头函数方式表示和传统function(){}的区别主要在于this指向问题,函数中如果没有操作this,因根据实际情况选择使用,结合要使用的API选择
  2. 对于指定参数个数的回调方式,要保证回调函数的参数和fun(回调函数,参数1,参数2)中的参数个数一致,这样不用arguments过度