我试图在我的_create中调用cycle_pages,但是我遇到了一些作用域问题。一旦我调用setTimeout,我就会切换到window的作用域,而不是匿名函数的作用域。最符合逻辑的似乎是
function cycle_pages(){
console.log("hello");
change_page(1);
setTimeout(function (self) {
self.cycle_pages();
}, 1000);
}
但我也尝试过各种不同的
function cycle_pages(){
console.log("hello");
change_page(1);
setTimeout('cycle_pages()', 1000);
}
我尝试将该函数移动到全局作用域中,但这导致change_page()超出了作用域。
有什么建议吗?完整粘贴到此处http://jsfiddle.net/vn7Re/1/
发布于 2012-03-26 04:48:27
当setTimeout
函数被调用时,它没有被提供任何参数,所以您可能需要更多这样的参数:
function cycle_pages() {
var self = this;
change_page(1);
setTimeout(function() {
self.cycle_pages();
}, 1000);
}
发布于 2012-03-26 10:30:23
你可以让这一切变得更简单:
function cycle_pages(){
console.log("hello");
change_page(1);
setTimeout(cycle_pages, 1000);
}
您不需要在setTimeout中创建匿名函数。
https://stackoverflow.com/questions/9863850
复制相似问题