let numFlag = document.getElementById("numBTN-Flag");
let callFlag = document.getElementById("callScreen");
let callDisplay = document.querySelector(".numberCalling");
let callingText = document.querySelector(".connectText");
function callCancel() {
callFlag.style.display = "none";
numFlag.style.display = "block";
callDisplay.innerText = "";
display.innerText = "";
}
const answerNumber = () => {
numFlag.style.display = "none";
callFlag.style.display = "block";
let callDisplay = document.querySelector(".numberCalling");
callDisplay = callDisplay.innerText = display.innerText;
const callText = () => {
if (callDisplay.length >= 9) {
let callingText = document.querySelector(".connectText");
callingText = callingText.innerText = "??cz?...";
setTimeout(function() {
let callingText = document.querySelector(".connectText");
callingText = callingText.innerText = "Trwa po??czenie...";
// do zrobienia odliczanie
}, 4000);
} else {
let callDisplay = document.querySelector(".numberCalling");
callDisplay.innerText = "Z?y numer";
}
};
callText();
};
在撰寫個人專案時,我遇到了一個小問題。這是一個小型電話模擬器,此時我面臨“全域范圍”問題的挑戰。正如您在提供的代碼中看到的,我在全域中有 4 個變數,但只有兩個(numFlag和callFlag)可以正常作業。說到callDisplay & callText變數我必須在每次需要它們時呼叫它們,就像函式無法訪問它們的全域版本一樣。我嘗試洗掉本地范圍版本并希望它可以在全域范圍內運行,但它不會。我知道我現在可以讓它這樣(它應該像它應該的那樣作業)但是額外的變數只會使代碼更難閱讀和維護......這讓我發瘋,為什么它不起作用。所以請賜教:)
uj5u.com熱心網友回復:
這是因為以下幾行
callDisplay = callDisplay.innerText = display.innerText;
callingText = callingText.innerText = "??cz?...";
callingText = callingText.innerText = "Trwa po??czenie...";
他們正在覆寫callDisplay和callingText變數。
用
callDisplay.innerText = display.innerText;
callingText.innerText = "??cz?...";
callingText.innerText = "Trwa po??czenie...";
相反,它將按您的意愿作業
let numFlag = document.getElementById("numBTN-Flag");
let callFlag = document.getElementById("callScreen");
let callDisplay = document.querySelector(".numberCalling");
let callingText = document.querySelector(".connectText");
function callCancel() {
callFlag.style.display = "none";
numFlag.style.display = "block";
callDisplay.innerText = "";
display.innerText = "";
}
const answerNumber = () => {
numFlag.style.display = "none";
callFlag.style.display = "block";
callDisplay.innerText = display.innerText;
const callText = () => {
if (callDisplay.innerText.length >= 9) {
callingText.innerText = "??cz?...";
setTimeout(function() {
callingText.innerText = "Trwa po??czenie...";
// do zrobienia odliczanie
}, 4000);
} else {
callDisplay.innerText = "Z?y numer";
}
};
callText();
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338408.html
標籤:javascript 功能 变量 范围 项目
上一篇:如何過濾包含函式的陣列
下一篇:根據條件回傳不同的df
