JavaScript问题。今天早上我完全不知所措了。
我有四个功能:
function create_account1(){ // some stuff }
function create_account2(){ // some stuff }
function create_account3(){ // some stuff }
function create_account4(){ // some stuff }
我现在需要遍历一些数字,如果符合条件,请调用相应的函数。由于我不知道我在循环中使用哪个号码,我该怎么做?
简单的例子:
for( var i=1; i<=4; i++ ){
create+i+();
}
这不起作用,我尝试过各种变体,但可以让它发挥作用。
感谢您的任何建议。 johnC
答案 0 :(得分:2)
这些功能是否存在于全球范围内?
如果是这样,你可以使用它:
for( var i=1; i<=4; i++ ){
window["create_account" + i]();
}
仅供参考:如果你想在jsFiddle中测试它,请确保不使用jsFiddle的 onLoad 或 onDomready 包装设置。如果您尝试使用它们,您的函数将成为嵌套的函数,这些函数显然不再属于 window 对象。
答案 1 :(得分:1)
试试这个
function mainfunc (){
window[Array.prototype.shift.call(arguments)].apply(null, arguments);
}
您传递的第一个参数应该是要调用的函数名,所有其余参数都将传递给被调用函数。在你的情况下,
mainfunc('create_account1');
或
mainfun('create_account2', 'Name');
如果您需要传递create_account2
的名称。
答案 2 :(得分:1)
请这样做:
for( var i=1; i<=4; i++ ){
var fnName = 'create_account' + i ;
//create+i+();
window[fnName]();
}
function create_account1(){
alert('Hello');
}
答案 3 :(得分:0)
你不能这样调用这个函数。我认为你面临着设计问题,正确的做法就是这样:
function create_account(accountID) {
switch(accountID)
{
case 1:
{
//account 1 logic.
break;
}
case 2:
{
//account 2 logic.
break;
}
etc...
}
}
你称之为
for( var i=1; i<=4; i++ ){
create_account(i);
}