如何查明某个函数被 javascript/jquery 调用了多少次?

2024-02-07

也许是一个奇怪的问题,但事实是:我有一个定期调用的函数,在该函数中我需要知道我处于哪个迭代中,或者该函数被调用了多少次。问题的简化版本:

jQuery( document ).ready( function(){
    setInterval( "myFunction()", 3000 );
});

function myFunction()
{
    alert( "I have been called X times" );
}

那么,如何找出上面代码中的X呢?


简单版本:创建一个全局变量,如下所示编码的答案 https://stackoverflow.com/a/8517576/41360。问题是——如果其他代码也定义了同名的全局变量,那么你们都有麻烦了。

简单的扩展版本 - 给变量起一个没人会使用的疯狂名称:calledTimesED7E69A7B141457CA8908A612E3D7A3A

聪明的版本:将该变量附加到现有的全局变量中。记住 -一切的JavaScript 中的一个对象!

$(function(){ setInterval(myFunction, 3000); });

function myFunction()
{
    myFunction.calledTimes++;
    alert( "I have been called " + myFunction.calledTimes + " times" );
}
myFunction.calledTimes = 0;

传统版本:使用作用域来隐藏该变量。

$(function()
{
    var calledTimes = 0;
    setInterval(function()
    {
        calledTimes++;
        alert( "I have been called " + calledTimes + " times" );
    }, 3000); 
});

但这隐藏了“myFunction”,所以让我们用一种棘手的范围再试一次:

var myFunction = null;
(function()
{
    var calledTimes = 0;
    myFunction = function()
    {
        calledTimes++;
        alert( "I have been called " + calledTimes + " times" );
    } 
})();

$(function () { setInterval(myFunction, 3000); });

...还有无数其他方法可以通过作用域隐藏该变量。只需选择您最喜欢的即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查明某个函数被 javascript/jquery 调用了多少次? 的相关文章