3

匿名関数を配列に追加し、その内容を実行する配列を反復処理しようとしています。単純なテスト ケースでも、TypeError: is not a function が発生します。

簡単なものがありませんか?

//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

2 に答える 2

6

これは関数の配列であるため、最初にそのインデックスで関数にアクセスしてから呼び出す必要があります

signInFunctions[i]();
于 2013-03-30T17:05:46.467 に答える
0

signInFunctions(i);使用する代わりにsignInFunctions [i] ();

于 2013-03-30T17:06:34.303 に答える