Javascript函数作为循环中的变量

Javascript函数作为循环中的变量,javascript,function,for-loop,conditional-execution,Javascript,Function,For Loop,Conditional Execution,你能帮我做一个带函数的循环吗 function menu1(){}; function menu3(){}; function menu4(){}; function menu5(){}; function menu6(){}; function menu7(){}; 我有7个功能: function menu1(){}; function menu3(){}; function menu4(){}; function menu5(){}; function menu6(){}; functi

你能帮我做一个带函数的循环吗

function menu1(){};
function menu3(){};
function menu4(){};
function menu5(){};
function menu6(){};
function menu7(){};
我有7个功能:

function menu1(){};
function menu3(){};
function menu4(){};
function menu5(){};
function menu6(){};
function menu7(){};
我需要做的是作为函数menux(){}加载 我的意思是,如果x==3,则从循环中加载函数menu3()


你也许应该解释一下你的处境,以及你想在更大的范围内实现什么。这似乎已经是一个次优的方法。但好吧,给你:

for(var x=1; x<8; x++)
{
    window['menu' + x]();
}

for(var x=1;x你应该问问自己——如果有不同的方法。当然是

  • 我建议你做一个函数,它接受一个参数,并根据它做一些事情,比如:
    功能菜单(x){…}

  • 如果第一个选项不适用于您,我建议您使用以下方法实现对象:
    
    var方法={
    menu1:函数(){},
    menu2:function(){},
    menu3:函数(){},
    ...
    }
    

  • 使用
    eval
    。在这种情况下,请不要这样做。eval功能强大,但在这种情况下,它是一种过分的杀伤力


  • 您可以将函数包装到对象中:

    function menu1(){};
    function menu3(){};
    function menu4(){};
    function menu5(){};
    function menu6(){};
    function menu7(){};
    
    var wrap={
        menu1:menu1;
        menu3:menu3;
        menu4:menu4;
        menu5:menu5;
        menu6:menu6;
        menu7:menu7;
    }
    
    然后,您可以将其计算到:

    for(x=1;x=8;=x++)
    {
      if(!wrap["menu"+i]) wrap["menu"+i]();
    }
    
    有很多方法可以做到这一点,你也可以做到:

    function menu(int num){
     switch(num)
      {
       case 1:
        menu1();
        break;
       case 2:
        menu2();
        break;
    
       //....
      }
    }
    

    我希望它能有所帮助。

    你能不能只使用
    函数菜单(num){..}
    ?没有办法让一个菜单函数接受一个“menuNumber”参数?menu2发生了什么事?:)看看这个。