2013-01-16 31 views
0

我想設置一個圖像交換函數。以下是我的代碼:第一次登錄後返回undefined的函數

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); 
    } 
} 

} 

正如您所看到的,這是一個帶有兩個參數的函數。然後它用兩種方法返回它自己的一個對象。當我在初始imageChanger函數調用並將參數傳遞給url之後調用count方法時,它只記錄我傳遞一次的內容,然後在setTimeout函數運行時發生未定義的後續時間。

我不知道我在做什麼錯在這裏。爲什麼這個count函數在第一個日誌之後返回undefined?

回答

1

在setTimeout的,你應該叫self.counturl說法,而不是無參數,即

self.count(url); 
+0

我剛琢磨出來爲好。謝啦! – Sethen