0

画像スワッパー機能を設定しようとしています。これまでの私のコードは次のとおりです。

var imageChanger = function(start, end) {

var start = 1;
var end = 22;

return {
    count: function(url) {

        var self = this;

        if(start > end) {
            start = 1;
        }

        console.log(url);
        console.log(start++);

        imageSwapper = setTimeout( function() {
            self.count();
        }, 2000)

    },
    stopCount: function() {
        clearTimeout(imageSwapper);
    }
}

}

ご覧のとおり、これは 2 つのパラメーターを取る関数です。次に、2 つのメソッドを使用して独自のオブジェクトを返します。count最初の関数呼び出しの後にメソッドを呼び出してimageChangerパラメーターを渡すurlと、一度渡したものだけがログに記録され、次にsetTimeout関数が実行されると、その後は未定義になります。

ここで何が間違っているのかわかりません。この関数が最初のログの後に undefined を返すのはなぜcountですか??

4

1 に答える 1

1

setTimeout では、引数なしではなくself.count、引数を指定して呼び出す必要があります。url

self.count(url);
于 2013-01-16T04:15:22.163 に答える