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