簡體   English   中英

JavaScript-在另一個函數中使用一個函數的變量值

[英]JavaScript - Using the value of a variable from one function in another

我有一個任務來創建一個簡單的游戲,但我陷入了困境。 我有一個包含聲明的變量的函數: 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的初學者。 謝謝您,“如何提高我的JS技能”方面的任何幫助和建議。 順祝商祺!

numberOfFaces += 5;
generateFaces();

您將numberOfFaces遞增5,但隨后又要調用generateFaces(),因為此函數此處重置了變量

function generateFaces() {
  var numberOfFaces = 5;

它將變量的值返回到5。

您想將numberOfFaces用作全局變量。 正如卡森所說,您應該在函數外部聲明

var numberOfFaces 
function generateFaces() {
numberOfFaces = numberOfFaces  || 5;
...
..
}

generateFaces函數中,您總是將umberOfFaces重置為5 ,您需要像這樣更改函數:

function generateFaces(faces) {
  var numberOfFaces = faces ? faces : 5;

然后這樣稱呼它:

generateFaces(numberOfFaces);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM