如何创建对javascript函数的动态调用
JavaScript问题。今天早上我完全是一片空白 我有四项职能:如何创建对javascript函数的动态调用,javascript,Javascript,JavaScript问题。今天早上我完全是一片空白 我有四项职能: function create_account1(){ // some stuff } function create_account2(){ // some stuff } function create_account3(){ // some stuff } function create_account4(){ // some stuff } 我现在需要循环一些数字,如果满足条件,调用相应的函数。既然我不
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+();
}
for(var i=1;i这些函数是否存在于全局上下文中
如果是这样,您可以使用以下方法:
for( var i=1; i<=4; i++ ){
window["create_account" + i]();
}
for(var i=1;i这些函数是否存在于全局上下文中
如果是这样,您可以使用以下方法:
for( var i=1; i<=4; i++ ){
window["create_account" + i]();
}
for(var i=1;i您不能像这样调用函数。我认为您面临设计问题,正确的方法是这样:
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);
}
for(var i=1;i您不能像这样调用函数。我认为您面临设计问题,正确的方法是这样:
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);
}
for(var i=1;i试试这个
function mainfunc (){
window[Array.prototype.shift.call(arguments)].apply(null, arguments);
}
您传递的第一个参数应该是要调用的函数名,其余所有参数都将传递给被调用的函数
mainfunc('create_account1');
或
如果需要为create\u account2
传递名称,请尝试此操作
function mainfunc (){
window[Array.prototype.shift.call(arguments)].apply(null, arguments);
}
您传递的第一个参数应该是要调用的函数名,其余所有参数都将传递给被调用的函数
mainfunc('create_account1');
或
如果您需要为create_account2
传递名称,请执行以下操作:
for( var i=1; i<=4; i++ ){
var fnName = 'create_account' + i ;
//create+i+();
window[fnName]();
}
function create_account1(){
alert('Hello');
}
对于(var i=1;i请按照以下方式执行:
for( var i=1; i<=4; i++ ){
var fnName = 'create_account' + i ;
//create+i+();
window[fnName]();
}
function create_account1(){
alert('Hello');
}
for(var i=1;iwindow['create\u account'+i]()
但是在您的系统中使用不同的方法会更好对不起,输入错误-在我的for循环中,调用应该是:create\u acct+i+();window['create\u account'+i]()
但最好在系统中使用不同的方法抱歉,输入错误-在我的for循环中,调用应为:create_acct+i+();这没有回答问题,但我认为OP可能存在设计问题!我没有否决,但正如我已经说过的,这没有回答问题!他想要的是动态函数调用,而不是一些预定义的开关情况。“你不能像这样调用函数”我认为这个社区的目的是提供最好的解决方案,如果有人因为试图做出奇怪的事情而陷入困境,那么一个正确的方式去做他试图实现的事情可能会更好。是的,但是你的解决方案也不是正确的方式。这些数字没有意义,最好是创建常量。这不是答案他提出了问题,但我认为OP可能存在设计问题!我没有否决,但正如我已经说过的,这并没有回答问题!他想要的是动态函数调用,而不是一些预定义的开关情况。“你不能像这样调用函数”我认为这个社区的目的是提供最好的解决方案,如果有人因为试图做出奇怪的事情而陷入困境,那么用正确的方式去做他试图实现的事情可能会更好。是的,但是你的解决方案也不是正确的方式。这些数字没有意义,最好是创建常量。谢谢你的“chumkiu”还有“ComFreek”。现场直播!效果很好。感谢“chumkiu”和“ComFreek”。现场直播!效果很好。它在@Tomzan工作,我在浏览器中查看了它,提醒(“你好”);这只是一个例子:::请在控制台中进行代码粘贴,然后按enter键,然后您就会看到此函数工作正常。您可以在函数中正确地执行任何操作,谢谢您将其更改为window['name'](我不能不同意。):)其工作@Tomzan,我在浏览器中检查过,提醒('Hello'));这只是一个例子:::请在控制台中粘贴代码,然后按enter键,然后您就会看到此函数工作正常。您可以在函数中正确地执行任何操作,谢谢您将其更改为window['name'](我不能不同意…)