我有一段非常简单的代码。它检查两个参数。如果第一个参数为假,则更改 chrome 扩展中的弹出图标,如果为真且之前为假,则将图标更改回来,如果未传递任何参数,则返回当前值。
问题是无论哪种方式,作为布尔值传递的变量和第一个参数都被解释为字符串并产生意外结果。这是我的代码:
var status = true;
var reason;
function isReady(statusT, reasonT) {
"use strict";
if (statusT === false) {
chrome.browserAction.setIcon({
path : "img/blue-sharingan.png"
});
status = statusT;
if (reason !== undefined) {
reason = reasonT;
return;
}
return;
}
if (statusT === true && status === false) {
chrome.browserAction.setIcon({
path : "img/icon-32.png"
});
status = statusT;
reason = null;
return;
}
if (statusT === undefined && reasonT === undefined) {
return {
'status' : status,
'reason' : reason
};
}
}
我已经阅读了https://stackoverflow.com/a/653934/792066,但我仍然不知道可能出了什么问题。