Javascript变量作用域问题嵌套函数

Javascript Variable Scope Issue Nested Functions

本文关键字:嵌套 函数 问题 作用域 变量 Javascript      更新时间:2023-09-26

好吧,所以我对Javascript半陌生,我正在检修一个朋友的扩展。

我的问题是,我的chrome.browserAction.getTitle获得正确的数据,但函数没有将结果传递给主函数,在名为"setBadge"的函数中显示为"未定义"。

function setBadge(status,s) {
    chrome.browserAction.getTitle({}, function(result){
        console.log(result)
        setBadge(res)
    });
    console.log(s);
    chrome.browserAction.setTitle({title:("is " + status)});
    if (status == "Online" && result == "is Offline") {
        showOn();
        audioNotification();
        chrome.browserAction.setBadgeText({text:("On" + "            ")});
        chrome.browserAction.setBadgeBackgroundColor({color:([0,255,0,255])});
    }
    if (status == "Offline" && result == "is Online") {
        showOff();
        audioNotification();
        chrome.browserAction.setBadgeText({text:("Off" + "            ")});
        chrome.browserAction.setBadgeBackgroundColor({color:([255,0,0,100])});
    }
}

我首先看到的是两件事。

  1. SetBadge在此代码片段中从未在自身之外被调用,导致无限递归和

2里面你传递res给setBadge,这实际上是未定义的