javascript - 使用 JavaScript 计算函数调用

标签 javascript function closures prototype

例如:我有很多功能,而且用了很多次。 我需要计算每个函数的调用次数。 实现它的最佳做法是什么?

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

最佳答案

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

_calls = {}

profile = function(fn) {
    return function() {
        _calls[fn.name] = (_calls[fn.name] || 0) + 1;
        return fn.apply(this, arguments);
    }
}

function foo() {
    bar()
    bar()
}

function bar() {
}

foo = profile(foo)
bar = profile(bar)

foo()
foo()

document.write("<pre>" + JSON.stringify(_calls,0,3));

对于严肃的调试,您最好使用专用的分析器(通常位于浏览器的控制台中)。

关于javascript - 使用 JavaScript 计算函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740692/

相关文章:

javascript - 将对象数组转换为其属性的唯一组合数组

javascript - 变量 javascript 数组 Chartists.js

javascript - 在 Facebook React 中使用混合与组件进行代码重用

javascript - AngularJS - 默认保存属性值

JavaScript 调用名称为匿名范围内函数的 in 字符串的函数

javascript - "function incrementNumber()"括起来的括号是可选的吗?

c++ - 获取 DLL 中导出函数的签名

python - 在 Python 环境中查找所有定义的函数

c - 将 3 维数组传递给 C 中的函数

closures - 根据另一个闭包定义一个闭包