Javascript 如何在函数名后附加一个数字来创建多个函数?
我有一个功能,负责一些验证,禁用和启用一些文本框和一组单选按钮 现在我想使用for循环生成要从另一个函数调用的函数名,然后将for循环索引附加到所讨论的函数 像这样的Javascript 如何在函数名后附加一个数字来创建多个函数?,javascript,Javascript,我有一个功能,负责一些验证,禁用和启用一些文本框和一组单选按钮 现在我想使用for循环生成要从另一个函数调用的函数名,然后将for循环索引附加到所讨论的函数 像这样的 function unCheckRadio(num) { var cont = num; var form = document.angular; for (var i = 0; i < cont; i++) { alert(form['lim_set'+i].length); fo
function unCheckRadio(num)
{
var cont = num;
var form = document.angular;
for (var i = 0; i < cont; i++)
{
alert(form['lim_set'+i].length);
for(var j = 0; j < form['lim_set'+i].length; j++ )
{
form['lim_set'+i][j].checked = form['lim_set'+i][j].defaultChecked;
}
makeChoice_ang();
}
}
函数取消勾选(num)
{
var cont=num;
var form=document.angular;
对于(变量i=0;i
这里我想把索引i附加到makeChoice_ang()函数中
尝试了很多方法。。。。但是不行
我试着用这个作出选择
但这使它成为一根弦
请帮帮我,或者至少给我指出正确的方向
万分感谢 如果我正确理解您的意图:
eval('makeChoice_ang'+i+'()');
这将调用由该字符串连接创建的函数。如果
i=5
,那么它将调用makeChoice\u ang5()
似乎更容易将makeChoice\u ang()
作为一个接受索引作为参数的通用函数重新执行。或者,如果您无法更改函数,或者如果函数之间的行为差异很大,您可以使用eval()
来计算字符串。在javascript中,函数被视为普通变量,就像字符串或int一样。显然,它们有一些额外的功能,但您可以以相同的方式使用它们,例如,可以在一个数组中存储多个函数,或者将一个函数传递给另一个函数。考虑到这一点,我看不出有任何必要以您尝试的方式命名函数
我希望我能为你的具体问题提供更多的帮助,但这有点难以理解,对不起
您可以尝试更改unCheckRadio
函数,使其将函数作为参数:
function unCheckRadio(num, func) { ... }
然后你会这样称呼它:
function unCheckRadio(5, function() {
// do whatever here.
});
制作一个对象,将函数放入其中。在此对象中为每个“makeChoice_ang”+i函数创建一个方法。然后可以通过该对象调用这些函数
var f = {
makeChoice_ang1: function(){
alert('1');
},
makeChoice_ang2: function(){
alert('2');
}
}
for(var i = 1; i < 3;i++)
f['makeChoice_ang' + i]();
var f={
makeChoice_ang1:function(){
警报(“1”);
},
makeChoice_ang2:function(){
警报(“2”);
}
}
对于(变量i=1;i<3;i++)
f['makeChoice_ang'+i]();
我添加这个作为一个不同的答案,因为它是不同的
如果您想调用一个全局函数(或任何您知道其作用域的函数),只要使用这样的后缀,就可以使用数组表示法:
window['makeChoice_ang' + i]();
记住。。。eval是邪恶的数组可能会更容易。是的,我读了其他答案后意识到了这一点。不过,这里的优势(如果这是一个优势的话)是,您有函数的名称。谢谢大家。。。。工作得很有魅力。。。也感谢所有其他人。。。我无法使用数组,这就是为什么我要进行此修复。。。我应该提到。。。非常感谢堆栈溢出