javascript的回调函数问题
大家讲道理
大家讲道理 2017-04-10 18:08:27
[JavaScript讨论组]

今天看了很多回调函数的文章,可是都说是把函数作为参数传递到另一个函数中调用,比如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');//如果从目标地址加载文件特别慢,不会影响这句执行吗?

就是想知道这种不把函数当参数传递的方式,但是在另一个函数内部却调用了,也叫作回调函数吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
迷茫

按定义的话,仅仅是在另外一个函数内调用的函数不叫回调函数。

上面的写法并没有作为参数传递的函数,所以不存在什么回调函数。但这种异步请求可以很容易地包装成回调函数的形式,就像 Jquery 做的那样,当然异步编程方法除了回调函数,还可以是其他模式,比如 promise、generator...

高洛峰

你的box确实也是回调函数,虽然它和普通的给函数传递函数有些不一样,因为这里的JSONP的问题。
回调是一种约定,用来解决不能用return获取返回值的问题。ajax回调,事件回调,JSONP回调都是一样的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号