Javascript 如何将一个函数的值传递给另一个函数?

Javascript 如何将一个函数的值传递给另一个函数?,javascript,canvas,Javascript,Canvas,我正在学习Javascript,我阅读了有关作用域和变量的内容,但无法获得有关如何在函数之间发送变量的信息。 请有人解释一下如何应对这种情况,如果能推荐一些相关的阅读材料,那就太好了 我想用30个不同的参数画一幅30次的图,并得到检查函数的最后一个参数: function loadImg{ ..... img.onload = function() { // Loading first picture at the start ........

我正在学习Javascript,我阅读了有关作用域和变量的内容,但无法获得有关如何在函数之间发送变量的信息。 请有人解释一下如何应对这种情况,如果能推荐一些相关的阅读材料,那就太好了

我想用30个不同的参数画一幅30次的图,并得到检查函数的最后一个参数:

function loadImg{  
 .....
      img.onload = function() {   // Loading first picture at the start
        ........
           boo.onclick = function() {  // the function which by click start all process
               var i = 0;
               var num;  // the variable which I'm going to use for random numbers.
           setInterval(function() {      
               //   here I'm generating random numbers
                num = Math.floor(Math.random() * imgs.length);
            // and then start draw() function, which is going to get the 'num' parameter and draw a pictures with time interval ONLY 30 times
              if(i < 30){                    
              draw(num);
              i++; }, 2000);

            check(num); // after all, I want to run "check()" function which is going to get THE LAST from that 30 generated 'num' parameter and check some information. But is undefined, because it's outside the setInterval function and I don't wont to put it in, because it will starts again and again.
函数加载img{
.....
img.onload=function(){//在开始时加载第一张图片
........
boo.onclick=function(){//通过单击启动所有进程的函数
var i=0;
var num;//我将用于随机数的变量。
setInterval(函数(){
//我在这里生成随机数
num=Math.floor(Math.random()*imgs.length);
//然后启动draw()函数,该函数将获取'num'参数,并以30次的时间间隔绘制一幅图片
如果(i<30){
抽签(num);
i++;},2000年);
check(num);//毕竟,我想运行“check()”函数,该函数将从生成的30个“num”参数中获取最后一个参数,并检查一些信息。但它没有定义,因为它在setInterval函数之外,我不想将其放入,因为它会一次又一次地启动。
如何获取check(num)函数的最后一个参数

顺便说一句,对不起,我一直在努力描述一个尽可能好的函数。

您可以在
setInterval()函数内调用
check(num)
,条件是:

if(i < 30){                    
  draw(num);
  i++;
}
else
{
   check(num);
}
然后在调用
check()
之前清除间隔:

if(i<30){
抽签(num);
i++;
}
其他的
{
clearInterval(myInterval);
检查(num);
}

您应该在完成后清除间隔。谢谢!它很有帮助,我使用了if-else{clearInterval并运行我的check()函数}我想它不会有帮助,因为“setInterval”中的“if”,check()函数将运行很多次times@DarthJS请查看我的更新,我忘了提到一旦间隔不再使用,您就应该清除它。这也将防止
check()
被多次运行。非常感谢!我真的需要它!
var myInterval = setInterval(function() { 
if(i < 30){                    
  draw(num);
  i++;
}
else
{
   clearInterval(myInterval);
   check(num);
}