Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript对函数调用进行计数_Javascript_Function_Closures_Prototype - Fatal编程技术网

使用JavaScript对函数调用进行计数

使用JavaScript对函数调用进行计数,javascript,function,closures,prototype,Javascript,Function,Closures,Prototype,例如:我有很多函数,并且多次使用它们。 我需要计算每个函数的调用数。 最佳做法是什么 起初我认为我需要闭包,但我无法以正确的方式实现它。您可以尝试以下方法: <script> var aCalls = 0; var bCalls = 0; function a() { aCalls = aCalls + 1; alert(aCalls); } function b() { bCal

例如:我有很多函数,并且多次使用它们。 我需要计算每个函数的调用数。 最佳做法是什么


起初我认为我需要闭包,但我无法以正确的方式实现它。

您可以尝试以下方法:

<script>
    var aCalls = 0;
    var bCalls = 0;
    function a()
    {
        aCalls = aCalls + 1;
        alert(aCalls);
    }
    function b()
    {
        bCalls = bCalls + 1;
        alert(bCalls);
    }
</script>

var aCalls=0;
var-bcall=0;
函数a()
{
aCalls=aCalls+1;
警报(ACALL);
}
函数b()
{
b调用=b调用+1;
警报(b呼叫);
}

在最简单的情况下,您可以使用分析包装来修饰每个函数:

\u调用={}
外形=功能(fn){
返回函数(){
_调用[fn.name]=(_调用[fn.name]| | 0)+1;
返回fn.apply(这是参数);
}
}
函数foo(){
bar()
bar()
}
功能条(){
}
foo=profile(foo)
棒材=型材(棒材)
foo()
foo()

write(“+JSON.stringify(_调用,0,3))最好的方法是使用探查器

在IE上:按F12打开开发者工具,然后转到Profiler选项卡,点击play按钮。停止探查器后,将显示大量信息(每个函数的调用次数、包含时间、独占时间等)


在Chrome上:按F12键,进入配置文件,收集JavaScript CPU配置文件(虽然它不会告诉您调用的次数)

在哪一端需要结果?返回/用户?结果是否为连续计数、基于会话等?我只需要呼叫数的变量,这无关紧要。此答案不满足问题的要求。为什么有两个变量,你只把它们保存在变量中,而不显示它们。他要求为每个函数提供一个计数系统。哦,是的。他只要求数一数。抱歉,一定是看错了。我在IE11上得到了
“undefined”:6
,然后在调用它时选择:profile=function(fn,fnname)并手动指定函数名谢谢你的回答,这非常有用;-)
var count = 0;

function myfunction()
{
    count++;
    alert( "Function called " + count);
}


myfunction();
myfunction();