什么是回调函数
一个函数被作为参数传递给另一个函数
什么时候使用回调函数
当一个函数中某一部分具体逻辑,暂时不确定时,可以使用回调函数,让调用该方法的时候具体实现
举个例子:
//定义methodA function methodA( x, cb ){ let res = '' if(x==1){ res = 'success' }else{ res = 'failure' } cb(res) //回调函数,将本方法中的res结果作为参数,具体实现,谁调用methodA谁实现 } //调用methodA,实现回调函数方法体,输出sucess methodA( 1, (res)=>{ if(res=='success'){ console.log('success') }else if(res=='failure'){ console.log('failure') } }) //调用methodA,实现回调函数方法体,输出failure methodA( 0, (res)=>{ if(res=='success'){ console.log('success') }else if(res=='failure'){ console.log('failure') } })
再举个例子:
//定义变量n,和方法getInput let n = '小明' function getInput(person, cback){ var arr=[] arr.push(person) cback(n,arr) //回调函数用到了本方法的arr作为参数,且没有具体函数的实现,函数具体实现需在调用的时候实现 } //调用getInput方法 getInput({name:'小红',age:'12'}, (n,arr)=>{ console.log(name+":"+arr[0].age) //调用回调函数,实现具体方法 }) 输出:小明:12