我可以检索间隔中运行的函数吗?

时间:2014-10-12 10:21:30

标签: javascript

setInterval运行匿名函数。

给定间隔id,我可以检索函数体吗?

对于那些好奇的人,我直接在浏览器控制台中编写了一个半复杂的函数,并启动了一个间隔。我丢失了控制台历史记录,因为我关闭了Firefox检查器,并希望自己省去重写功能的工作。按" Up",不再带回我以前的条目。

2 个答案:

答案 0 :(得分:1)

不,您无法从计时器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(); }"

答案 1 :(得分:0)

看看你在萤火虫中保存的所有历史记录

enter image description here