之前自己有总结过一些关于js中回调函数的知识了,此次主要是补充一些关于回调函数中的参数的来源的东西
在使用回调函数的过程中往往我们是直接使用的,并且在使用过程中回调函数一般还都带有从父函数那里带过来的参数
(数据)这也就是回调函数需要处理的数据,那么这些数据是从哪里传过来的呢? 下面介绍两种情况
1 将回调函数的参数作为与回调函数同等级的参数进行传递
举例如下:
// 回调函数的定义
function say(value) {
alert(value);
}
// 调用回调函数的函数的定义
function exe(value,callback) {
callback(value)
}
// 执行调用回调函数的函数
exe('hi,xiaoyu',say);
像上面这种情况,回调函数本身需要一个参数,这个参数可以从与自己同等级的参数中取得。
2 回调函数的参数在调用回调函数的内部创建并取得
// 回调函数的定义
function say(value) {
alert(value.name) // 可以看到回调函数是需要一个参数,而且这个参数貌似还是一个对象
}
// 调用回调函数的函数的定义
function exe(callback) {
var value = {
name: 'xiaoyu'
}
callback(value)
}
// 执行调用回调函数的函数
exe(say);
上面这个函数中只传入了一个参数就是回调函数,而回调函数的参数则是在父函数中取得的
这里也体现出了回调函数是一个闭包的特性,即它可以访问 到其父函数中定义的私有变量。
所以以后再写带有参数的回调函数的时候,心里只需要清楚,这个参数是通过以上两种方法得到的即可。