ラッパーを配置できますsetTimeout
-私はこれを一緒に投げました(テストを数回繰り返した後...)
(function() {
var cache = {};
var _setTimeout = window.setTimeout;
var _clearTimeout = window.clearTimeout;
window.setTimeout = function(fn, delay) {
var id = _setTimeout(function() {
delete cache[id]; // ensure the map is cleared up on completion
fn();
}, delay);
cache[id] = fn;
return id;
}
window.clearTimeout = function(id) {
delete cache[id];
_clearTimeout(id);
}
window.getTimeout = function(id) {
return cache[id];
}
})();
注意: コールバックに文字列を使用する場合、これは機能しません。しかし、誰もそれをしませんよね?
また、ES5 の追加パラメーターをコールバック関数に渡すこともサポートしていませんが、これは簡単にサポートできます。