[英]Javascript: Why array variable assignment is behaving differently inside and outside this function?
[英]Why does this global Javascript variable behave differently inside and outside of a function?
我試圖了解為什么我的全局變量'imageUrl'在函數'genericOnClick()'內外的行為不同
var imageUrl
var id = chrome.contextMenus.create({
"title": "Add to JC Queue",
"contexts": ["image"],
"onclick": genericOnClick
});
function genericOnClick(info) {
imageUrl = info.srcUrl;
console.log(imageUrl);
chrome.tabs.create({
url: chrome.extension.getURL('dialog.html'),
active: false
}, function (tab) {
// After the tab has been created, open a window to inject the tab
chrome.windows.create({
tabId: tab.id,
type: 'popup',
focused: true
});
});
}
console.log(imageUrl);
請讓我知道我要去哪里了:
當運行第二個console.log
,尚未調用該函數,因此尚未為變量分配任何東西。 但是,在函數內部它已經收到一個值,這就是您所看到的。
好吧,當您在調用函數之前記錄日志時, imageURL
是 undefined
,代碼末尾的日志在調用函數之前運行。
最后一行( console.log(imageUrl);
)在聲明不帶任何值的imageUrl
之后幾乎立即運行,因此在這一點上它是未定義的。
嘗試將imageUrl
設置為初始值,您會看到該值將被記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.