今天看了很多回调函数的文章,可是都说是把函数作为参数传递到另一个函数中调用,比如A()函数是一个回调函数,作为函数B的参数B(A),这样调用,这种方式叫回调函数。可是如果A函数不作为B函数的参数传递到B中,但是在B中却调用了函数A,这样叫回调函数吗?在JSONP跨域问题上:
function box(value){//回调函数
console.log(value);
}
window.onload=function(){
getInfo('../139.129.6.91/test.js?callback=box');
}
function getInfo(url){
var oScript=document.createElement('script');
oScript.style='text/javascript';
oScript.src=url;
document.getElementsByTagName('html')[0].appendChild(oScript);//获取完文件后会得到一个回调函数
}
console.log('1');//如果从目标地址加载文件特别慢,不会影响这句执行吗?
就是想知道这种不把函数当参数传递的方式,但是在另一个函数内部却调用了,也叫作回调函数吗?
按定义的话,仅仅是在另外一个函数内调用的函数不叫回调函数。
上面的写法并没有作为参数传递的函数,所以不存在什么回调函数。但这种异步请求可以很容易地包装成回调函数的形式,就像 Jquery 做的那样,当然异步编程方法除了回调函数,还可以是其他模式,比如 promise、generator...