什么是回调函数:
//callback是一个函数
A callback is a function
//作为另一个函数的参数
that is passed as an argument to another function and
//当父函數执行完成之后,它(回调函数)才被执行
is executed after its parent function has completed.
总的来说就是回调函数作为参数传到函数的参数里面,先执行函数,再执行回到函数。
demo:
parent(callback){
callback()
}
小程序js:
onLoad: function (options) {
this.c(this.a)
this.c(this.b)
},
a() {
console.log("a")
},
b() {
console.log("b")
},
c(callback) {
console.log("c")
console.log(callback)
callback()
},
打印结果:
第一个c函数:
c
打印函数
a
第二个函数:
c
打印函数
b
为什么使用函数作为参数呢?而不是直接写在函数里面呢?
这样的话就是为了有很好的扩展性。
因为 一个函数a去要调用另一个函数c直接写在里面没有任何问题。
如果 一个函数b也要要调用另一个函数c直接写在里面没有啥问题。
但是一旦很多就像是ajax(wx.request)请求,岂不是太麻烦了。
那你如果一个函数a根据条件不同执行不同的函数c呢
如果像函数a一样的函数有多个呢,那岂不是光写代码了,太麻烦了。
所以用函数作为参数非常牛逼。
说到这里那么回调函数的参数怎么写的呢?
onLoad: function (options) {
this.c(3,this.b,2)
},
a() {
console.log("a")
},
b(b) {
console.log("b")
return b*b;
},
c(num,callback,can) {
console.log("c")
console.log(callback)
var res = callback(can)
console.log(num+res)
},
结果:
一看就懂。
具体怎么写就靠你了,加油!