2014-02-26 41 views
0

例子:有沒有一種方法在JavaScript中超時之後再次調用當前函數(以及它的參數)?

function foo(){ 
setTimeout(/*function(){foo(and all arguments);}*/, 2000); 
} 

有什麼辦法,我可以說超時後再次調用相同的功能。我遇到的問題是參數不是字符串,而是節點。例如:

foo(document.body, document.getElementById('header')); 
+1

你能解釋一下你在嘗試什麼? è?? – WebServer

+0

你正試圖反覆調用'foo'並且無限期地刷新頁面? – Xotic750

+0

是的,相同的概念。我在等待一個變量來改變。 – Ood

回答

2

你的問題使我認爲你正在試圖做到這一點

HTML

<div id="header"></div> 

的Javascript

function foo() { 
    setTimeout((function (that, args) { 
     return function() { 
      foo.apply(that, args); 
     }; 
    }(this, arguments)), 2000); 

    console.log(arguments); 
} 

foo(document.body, document.getElementById('header')); 

jsFiddle

+0

謝謝!這也是一個使用apply()的好主意! – Ood

相關問題