2011-04-26 54 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); 

尝试。