我有一项任务是创造一个简单的游戏而且我被卡住了。我有一个包含声明变量的函数:var numberOfFaces = 5;
。这个一般函数包括另外两个,在第二个嵌套函数中我想使用变量的值,如numberOfFaces += 5;
但它不起作用,在此字符串后我仍然有numberOfFaces = 5
痛苦的完整列表:
function generateFaces() {
var numberOfFaces = 5;
var theLeftSide = document.getElementById("leftSide");
var theRightSide = document.getElementById("rightSide");
var theBody = document.getElementsByTagName("body")[0];
var counter = numberOfFaces;
while (counter > 0) {
var smileFaceImg = document.createElement("img");
smileFaceImg.src = "pepe.png";
smileFaceImg.style.top = Math.floor(Math.random() * 400) + "px";
smileFaceImg.style.left = Math.floor(Math.random() * 400) + "px";
theLeftSide.appendChild(smileFaceImg);
counter--;
}
var clon = theLeftSide.cloneNode(true);
clon.removeChild(clon.lastChild);
document.getElementById("rightSide").appendChild(clon);
theLeftSide.lastChild.onclick = function nextLevel(event) {
while (theLeftSide.firstChild) {
theLeftSide.removeChild(theLeftSide.firstChild);
}
event.stopPropagation();
numberOfFaces += 5;
generateFaces();
};
theBody.onclick = function gameOver() {
alert("Game Over!");
theBody.onclick = null;
theLeftSide.lastChild.onclick = null;
};
}
我是JavaScript的初学者。大merci任何帮助和建议"如何提高我的JS技能"。祝您好运!
答案 0 :(得分:0)
numberOfFaces += 5;
generateFaces();
你将numberOfFaces增加5,但之后你正在调用generateFaces(),因为这个函数 重置变量 :
function generateFaces() {
var numberOfFaces = 5;
它将变量的值返回到5。
答案 1 :(得分:0)
您希望将numberOfFaces用作全局变量。正如卡森所说,你应该在功能之外宣布
var numberOfFaces
function generateFaces() {
numberOfFaces = numberOfFaces || 5;
...
..
}
答案 2 :(得分:0)
在generateFaces
功能中,您始终将umberOfFaces
重置为5
,您需要更改此功能:
function generateFaces(faces) {
var numberOfFaces = faces ? faces : 5;
然后像这样称呼它:
generateFaces(numberOfFaces);