setInterval
运行匿名函数。
给定间隔 ID,我可以检索函数体吗?
对于那些好奇的人,我直接在浏览器控制台中编写了一个半复杂的函数,并开始了一个间隔。我因为关闭了 Firefox 检查器而丢失了控制台历史记录,并且想省去重写函数的精力。按“向上”,不再返回我以前的条目。
最佳答案
不,您无法从计时器 ID 检索该函数。
如果你想定期做这样的事情,那么重新定义setInterval
来捕获函数:
(function() {
var oldSetInterval = setInterval; // remember the original setInterval
setInterval = function(fn, msec) { // redefine setInterval
var id = oldSetInterval(fn, msec); // call the real one
setInterval.fns[id] = fn; // remember the fn in an array
return id;
};
setInterval.fns = []; // array attached to our setInterval
// remembers functions by timer ID
}());
使用如下:
var myId = setInterval(function() { alarm(); }, 300000);
alert(setInterval.fns[myId])); // "function() { alarm(); }"
关于javascript - 我可以检索在某个时间间隔内运行的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26324097/