[英]Can we use javascript variables which are defined in callback functions, outside of it(callback function)?
這是我的代碼。
var scoreResults = document.querySelectorAll(".flex-blackjack-row-1 h3");
var scores = document.querySelector(".flex-blackjack-row-1 span");
const config = {childList: true};
const busted = function (mutationList, observer){
var bustedMessage = document.createElement('h2');
bustedMessage.textContent = 'BUSTED!';
scoreResults[0].before(bustedMessage);
hitButton.setAttribute('disabled', 'true');
}
const observer = new MutationObserver(busted);
observer.observe(scores, config);
我在回調函數中定義了bustedMessage變量,我想在該回調函數之外使用它。 仍然在成功調用 busted 函數之后(這意味着仍然在初始化bustedMessage變量之后),該變量不能在回調函數之外使用。
但是當我拿出這個代碼塊時,
var bustedMessage = document.createElement('h2');
bustedMessage.textContent = 'BUSTED!';
從“busted”回調函數到外部,我也可以在其他函數中使用bustedMessage變量。 請解釋為什么會發生這種情況? 我無法理解它,因為bustedMessage是一個應該在任何地方使用的var類型變量。
bustedMessage
在外部定義bustedMessage
var bustedMessage;
const busted = function (mutationList, observer){
if (parseInt(scores.textContent) > 21) {
bustedMessage = document.createElement('h2');
bustedMessage.textContent = 'BUSTED!';
scoreResults[0].before(bustedMessage);
hitButton.setAttribute('disabled', 'true');
}
}
您現在可以在此腳本的任何位置自由使用 bustedMessage,當然在您第一次調用busted
之前它是未定義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.