簡體   English   中英

函數中的JS簡單函數不起作用

[英]JS simple function in function won't work

我想做這個1函數,並在函數2中調用它。

function d6Roll(){
            var d6 = 1 + Math.floor(Math.random() * 6);
            }
function attackModifier(){
                d6Roll();
                var aMod = d6;
                document.getElementById("rezultatD6").innerHTML = aMod;
            }

由於某種原因,它只能這樣工作:

function d6Roll(){
            var d6 = 1 + Math.floor(Math.random() * 6);
            document.getElementById("rezultatD6").innerHTML = d6;
            }

函數是否可能無法進入另一個函數?

我想您想將第一個功能更改為此

function d6Roll(){
  return 1 + Math.floor(Math.random() * 6);
}  

這樣您就可以像這樣在第二個函數中調用它

function attackModifier(){
  var aMod = d6Roll();
  document.getElementById("rezultatD6").innerHTML = aMod;
}

該功能可能無法進入其他功能嗎?

完全有可能,您只是做錯了。 變量無法“轉義”其作用域(在本例中為它們內部的函數),因此您無法從attackModifier函數訪問d6 而是返回值,如下所示:

function d6Roll(){
    return 1 + Math.floor(Math.random() * 6);
}

然后,您可以像這樣獲得滾動值:

function attackModifier(){
    var aMod = d6Roll();
    document.getElementById("rezultatD6").innerHTML = aMod;
}

MDN文檔中可能有一些關於函數返回如何工作的有用解釋。

你所得到的d6在變量attackModifier功能,你需要的之外創建這個變量d6Roll功能。

看起來像:

var d6;

function d6Roll() {  ... }
function attackModifier() {...}

暫無
暫無

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

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