0
是否有可能在window.setInterval方法超時時在現有對象上運行該方法。我可以通過設置一個全局變量並在setInterval中調用這個全局變量的方法來模擬它,但我想知道這是否可以直接使用該方法。使用window.setInterval在現有對象上執行方法
最好的問候, 凱沙夫
是否有可能在window.setInterval方法超時時在現有對象上運行該方法。我可以通過設置一個全局變量並在setInterval中調用這個全局變量的方法來模擬它,但我想知道這是否可以直接使用該方法。使用window.setInterval在現有對象上執行方法
最好的問候, 凱沙夫
是的,你可以做到這一點。你需要一個輔助功能,使一個新功能具有現有對象「綁定」:
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的一個本地部分,它在某些瀏覽器中已經存在了—。
目前還不清楚你實際要問什麼。也許你可以粘貼一些示例代碼?閱讀代碼通常比閱讀某人對代碼的解釋更容易:) – 2010-06-15 10:58:37