【发布时间】:2013-03-07 21:49:33
【问题描述】:
我想将 for 循环中的函数名称更改为类似的名称。
<script>
for (var x=1;x<10;x++){
function name_x(){
code
}
</script>
因此,生成了 10 个名称为 name_1、name_2 等的函数。
谢谢
编辑:
这就是我需要一个 for 循环来创建 5 个函数 id_1、id_2、id_3、id_4、id_5
<html>
<head>
<script>
function id_1(a){
var id = document.getElementById(a);
if (id.innerHTML==="innerHTML2"){
id.innerHTML="innerHTML1";
}
else if (id.innerHTML==="innerHTML1"){
id.innerHTML="innerHTML2";
}
}
</script>
</head>
<body>
<a id="id1" href="javascript:id_1('id')">innerHTML1</a>
<a id="id2" href="javascript:id_2('id')">innerHTML1</a>
<a id="id3" href="javascript:id_3('id')">innerHTML1</a>
<a id="id4" href="javascript:id_4('id')">innerHTML1</a>
<a id="id5" href="javascript:id_5('id')">innerHTML1</a>
</body>
</html>
【问题讨论】:
-
你为什么要这样做?创建完这 10 个函数后你会做什么?
-
生成许多类似命名的函数名似乎是一种非常强烈的代码气味。你能稍微备份一下,解释一下你想要完成的事情的大局吗?例如,数组可能有更好的方法。
-
嗯,我想要完成的就是这个。当我点击一个链接时,它对应一个函数,我希望每个函数做不同的事情。所以如果我有 10 个链接,我想要 10 个函数。
-
@user2145975:你为什么不使用匿名函数?
-
@user2145975:如果这 10 个链接做了 10 件完全不同的事情,那么就给他们 10 个与他们的行为相对应的不同的合理名称。如果它们非常相似并且不同之处取决于索引号,那么让所有 10 个链接调用完全相同的函数,并使用控制流逻辑和函数参数处理差异。例如,您可以调用
handleLink(this)来传递对源链接的引用,并根据点击的链接进行略微不同的处理。
标签: javascript function for-loop