理解JS中的回调函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 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中的回调函数

喜欢 (1)

猜你喜欢

转载自blog.csdn.net/c332030/article/details/88921440