版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c332030/article/details/88921440
分析一段代码:
// 获取当前选项卡的ID
// 参数是一个回调函数
function getCurrentTabId(callback){
// 获取具有指定属性的所有标签页,若没有指定属性,则返回所有标签页
// api原型 chrome.tabs.query(object queryInfo,fucntion callback)
// 详见 https://crxdoc-zh.appspot.com/extensions/tabs#method-query
chrome.tabs.query(
// 指定属性
{
active:true, // 是否为活动标签页
currentWindow:true // 标签页是否在当前窗口中
},
// tabs参数为具有上述指定属性的所有标签页
function(tabs){
// 如果存在回调函数,则向回调函数即下面的匿名函数传参
// 传回去的参数为当前标签页的ID
if(callback) callback(tabs.length ? tabs[0].id:null);
}
);
}
// 在当前标签页(选项卡)打开某个链接href
function openUrlCurrentTab(url){
// 调用getCurrentTabId函数
// 参数是一个参数为tabId的匿名函数
// 匿名函数执行标签页的url的更新
getCurrentTabId(tabId =>{
chrome.tabs.update(tabId,{url:url});
})
}
openUrlCurrentTab('https://www.baidu.com');
最终作用是在当前的标签页中打开百度。
- 下面通过一个简单的回调来演示
function test(arg1,arg2,callback)
{
result = arg1+arg2;
result = result + callback(argg1,argg2);
console.log(result)
}
test(1,2,function(3,4){
console.log('回调函数');
return 3+4;
});
定义的test函数里有共有三个参数,前两个都是普通参数,第三个是一个函数参数
在后面test函数调用后,前两个普通参数先传进去,计算result =1 +2,之后再计算result + callback(3,4)
的result =3 + (3+4)
,最终结果打印10
参考资料:彻底理解javascript的回调函数(推荐)
参考资料:javascript教程
参考资料:chrome.tabs.query接口
转载请注明:大魔王ISDevil's Blog » 理解JS中的回调函数