[英]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.