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