我可以将函数名称作为数组变量吗?

时间:2012-11-18 13:09:02

标签: javascript function

我可以使用这样的JavaScript循环吗?

SB = new Array;

for (i = 1; i < 6; i++) {

   function SB[i]() {

         (code)

   } // end of function

} // end of for loop

我知道这不起作用,但我怎么能做出类似的东西呢?感谢。

3 个答案:

答案 0 :(得分:2)

创建一个匿名函数并将其返回给变量。

var SB = [];
for (i=1;i<6;i++) {
    SB[i] = function() {
        //(code)
    }
}

请注意,javascript中的数组是0索引的。

所以你使用

获取数组中的第一项
myArray[0]

最后一次使用

myArray[ myArray.length - 1 ]

所以我想你想用i=0循环:

var SB = [];
for ( var i = 0; i < 5 ; i++) {
    SB[i] = function() {
        //(code)
    }
}

...

console.log(SB) // [function() {},function() {},function() {},function() {},function() {}]

而不是:

[undefined, function() {}, function() {}, function() {}, function() {}, function() {}]

答案 1 :(得分:1)

var SB=[];
for (i=1;i<6;i++) {
    SB[i] = function () {
        ...
    }
}

您现在可以这样调用它:

SB[1]();

答案 2 :(得分:0)

使用括号表示法:

for ( var i = 1; i < 6; i++ ) {

    SB[i] = function() {

    };

}

这会将函数表达式附加到索引i的数组中。您可以这样称呼它:

SB[ 1 ]();
SB[ 2 ]();

// etc..