var displayOfAll = document.getElementById("displayOfAll");
var playButton = document.getElementById("playButton");
var playButtonShadow = document.getElementById("playButtonShadow");
var playButtonPosX = 300;
var playButtonPosY = 350;
var playButtonMovingUpPosY = 350;
var playButtonHeightWhenMovingUp = 100;
var playButtonFontSize = 500;
var moneyNum = 0;
var addMoneyButtonPlus = '+';
var moneyToAdd = 1;
function Play() {
playButton.style.left = playButtonPosX+"px";
playButton.style.top = playButtonPosY+"px";
displayOfAll.removeChild(playButtonShadow);
if (playButtonMovingUpPosY <= 350) {
var moveUp = setInterval(function movingUp() {
if (playButtonMovingUpPosY <= 100) {
if (playButtonMovingUpPosY <= 0) {
clearInterval(moveUp);
displayOfAll.removeChild(playButton);
Main();
}
playButtonHeightWhenMovingUp -= 2;
playButton.style.height = playButtonHeightWhenMovingUp+"px";
playButtonMovingUpPosY -= 2;
playButton.style.top = playButtonMovingUpPosY+"px";
if (playButtonFontSize <= 300) {
if (playButtonFontSize <= 0) {
playButtonFontSize = 0;
} else {
playButtonFontSize -= 300;
playButton.style.fontSize = playButtonFontSize+"%";
}
} else {
playButtonFontSize -= 5;
playButton.style.fontSize = playButtonFontSize+"%";
}
} else {
playButtonMovingUpPosY -= 2;
playButton.style.top = playButtonMovingUpPosY+"px";
}
}, 1)
}
}
function Main() {
var moneyDiv = document.createElement("div");
moneyDiv.style = "margin:0px;padding:0px;position:absolute;height:100px;width:200px;background-color:green;font-size:500%;text-align:center;top:100px;left:275px;z-index:10;";
displayOfAll.appendChild(moneyDiv);
moneyDiv.innerHTML = "0";
var addMoneyButton = document.createElement("div");
addMoneyButton.style = "margin:0px;padding:0px;position:absolute;height:100px;width:200px;background-color:green;font-size:500%;text-align:center;top:500px;left:275px;z-index:10;";
addMoneyButton.innerHTML = addMoneyButtonPlus;
addMoneyButton.onclick = addMoney;
displayOfAll.appendChild(addMoneyButton);
}
function addMoney() {
moneyNum += moneyToAdd;
moneyDiv.innerHTML = moneyNum;
}
在倒数第二行(“moneyDiv.innerHTML = moneyNum;”)中,浏览器编辑器给出错误“Uncaught ReferenceError: moneyDiv is not defined at HTMLDivElement.addMoney”这里有什么问题?为什么他看不到变量?
变量应该在函数的范围内
addMoney,现在它在function Main()移动变量声明
例如,在脚本的最开始,并且在函数内部
Main()它必须已经被初始化:在这些手势之后,函数
addMoney会看到变量moneyDivPS:当一个函数可以访问在它之外定义的变量时,并且在更高的范围内,这称为闭包。您可以在此处
closure阅读有关闭包的更多信息