JavaScript - 使用另一个

时间:2017-06-10 00:42:53

标签: javascript

我有一项任务是创造一个简单的游戏而且我被卡住了。我有一个包含声明变量的函数: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技能"。祝您好运!

3 个答案:

答案 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);