2011-04-26 55 views
1

我仍然在學習如何正確使用Javascript,並試圖在對象內部的函數上設置間隔。Object裏面的方法undefined?

這裏是我的代碼:

http://pastebin.com/hJAtaqKi

在第36行,我呼籲進一步下跌的頁面中的功能..這正常工作正常,並引用功能..但是當我嘗試換該函數在setinterval中setInterval('homePageFunctionality.animateCarousel($ pause)',4000);

這似乎

沒有工作。我得到一個homePageFunctionality沒有定義..

任何想法,我似乎爲什麼不能使用的setInterval時引用該函數?

對我的代碼的任何其他一般反饋是受歡迎的。

感謝

回答

3

不要將字符串傳遞給setIntervalsetTimeout。如果這樣做,解析器必須將它們轉換爲代碼,並且它會在其自己的執行上下文中執行該操作,因此您的變量不可用。

而是傳遞一個匿名函數做同樣的事情到setInterval

setInterval(function() { 
    homePageFunctionality.animateCarousel($pause); 
}, 4000); 
+0

+1,雖然這不會做同樣的事情,你剛纔說你自己。 ;) – Shaz 2011-04-26 12:00:27

+0

這工作謝謝:) – Owzzz 2011-04-26 12:13:39

+0

@Shaz我的意思是說,代碼做同樣的事情,但它只有變量可用時,這樣的調用 – Gareth 2011-04-26 12:20:35

0
setInterval(function(){ 
homePageFunctionality.animateCarousel($pause); 
}, 4000); 

嘗試。