定义被脚本执行的回调函数
老师早上好!
1、不太明白 getJSONP[name] 指向的是谁? 指向的是 name = "getJSONP" + a[r1] + a[r2] + a[r3]吗,如果指向是它就更弄不明白这个函数名名了
2、try{
callback && callback(data);
}catch(e){
//
}finally{
// 最后删除该函数及 script 标签
delete getJSONP[name];
script.parentNode.removeChild(script);
}
这句代码的意思是 如果 getJSONP 函数中存在callbac 就执行callback && callback(data);,什么意思呢? callback(data)指的是本函数,那callback指向的是谁呢?还是我对 callback && callback(data); 理解错了
2、finally{
// 最后删除该函数及 script 标签
delete getJSONP[name];
script.parentNode.removeChild(script);
}
老师说每一次跨域都会创建动态script标签,跨域多了,生成的函数就多了,什么意思呢?代码不是执行完一次就结束了嘛为什么会有每一次跨域,生成的函数指的是什么
老师说生成完之后对我们就没有作用了,所以要删除,不太明白
正在回答 回答被采纳积分+1
同学你好,问题解答如下:
1、getJSONP[name]指向的是发送请求时传入回调函数
前端后后端发送请求,携带了一个函数,那么后端返回的就是带有数据的回调函数。代码中定义这个函数,接收data数据。
name是变量,不能通过点的方式使用,传入的时候因为拼接了,所以可以。但是定义的时候需要使用[]方式,否则name变量会作为属性名,而不是name变量代表的值作为属性名。
2、callback是传入的函数
try中判断的是,如果传入了函数,就调用这个函数,并传入返回的数据,输出出来。
3、页面中需要不同内容数据时,一般会发送多个请求,所以创建的函数会变多,就是这里
拿到数据后这个函数就没有用了,可以删除,避免后面某一个创建函数名称重复。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星