繁体   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