0

.call()メソッドを使用して行われる関数呼び出しにsetTimeoutを設定しようとすると少し行き詰まります。

基本的に、私は関数参照の配列を持っており、それらを1つずつステップスルーし、特定のsetTimeout間隔で呼び出しています。最初の関数は正常に起動しますが、2番目の関数は起動せず、jsコンソールで理解できないエラーが発生します-エラーは-

Uncaught TypeError:オブジェクト73にはメソッド'call'がありません

コード:

        function scene1(){             
            alert("boo");
        }

        function scene2(){          
            alert("boo2");
        }            

        var arrAnimation = [];
        arrAnimation[0] = scene1;                   
        arrAnimation[1] = scene2;                 

        //step through the array
        for (var i = 0; i < arrAnimation.length; i++){
                setTimeout(arrAnimation[i],3000).call();                  
        }  

どんな助けでも本当にありがたいです。ダン

4

2 に答える 2

3

使用する必要はありませんcall。関数をに渡すだけで、setTimeout自動的に実行されます。

setTimeout(arrAnimation[i],3000);

エラー自体に関するFYI-setTimeout数値をハンドルとして返します。これにより、必要に応じて後でタイムアウトをキャンセルできます。数字には機能がありませんcall

于 2012-04-29T14:11:39.867 に答える
1

.call間違った場所にメソッドがあります。どうぞ:

http://jsfiddle.net/JkLk2/

于 2012-04-29T14:13:55.490 に答える