2010-06-15 29 views
0

是否有可能在window.setInterval方法超時時在現有對象上運行該方法。我可以通過設置一個全局變量並在setInterval中調用這個全局變量的方法來模擬它,但我想知道這是否可以直接使用該方法。使用window.setInterval在現有對象上執行方法

最好的問候, 凱沙夫

+0

目前還不清楚你實際要問什麼。也許你可以粘貼一些示例代碼?閱讀代碼通常比閱讀某人對代碼的解釋更容易:) – 2010-06-15 10:58:37

回答

2

是的,你可以做到這一點。你需要一個輔助功能,使一個功能具有現有對象「綁定」:

var someRandomObject = { 
    someMethod: function() { 
    // ... whatever 
    }, 
    // ... 
}; 

// this is a "toy" version of "bind" 
function bind(object, method) { 
    return function() { 
    method.call(object); 
    }; 
} 

var interval = setInterval(bind(someRandomObject, someRandomObject.someMethod), 1000); 

現在,當間隔定時器調用方法(見「的someMethod」)中,「這個」指針引用目的。

該版本的「綁定」被簡化了。 Prototype,Functional,jQuery等庫通常提供更強大的版本。此外,「綁定」功能將會是Javascript的一個本地部分,它在某些瀏覽器中已經存在了—。

相關問題