2013-03-30 82 views
3

我正在向数组添加一个匿名函数,并试图迭代该数组执行其内容。即使有一个简单的测试用例,我也会遇到TypeError:不是函数。将函数添加到数组

我是否缺少一些简单的东西?

//an array of functions 
var signInFunctions = []; 

//add a function to the array 
signInFunctions.push(function() { 
    console.log("hello world"); 
}); 

function userSignedIn() { 
    //execute all functions in the signInFunctions array 
    for (var i = 0; i < signInFunctions.length; i++) { 
     signInFunctions(i); 
    } 
} 

userSignedIn(); 

这里的错误:

TypeError: 'function() { 
console.log("hello world"); 
}' is not a function (evaluating 'signInFunctions(i)') 
+4

您需要'signInFunctions [ i]();' – BenM

+0

尝试'signInFunctions [i]();' – rab

回答

6

这是一个函数数组,所以首先你需要一个索引来访问功能和然后称之为:

signInFunctions[i](); 
0

而不是signInFunctions(i);使用signInFunctions [i]();