javascript - 如何使用 Chrome 开发工具控制台检查文件中某个函数被调用的次数?

标签 javascript google-chrome-devtools

我想知道某个特定的 JavaScript 函数在 HTML 文件中使用开发工具被调用了多少次,但不知道如何调用,也无法通过 Google 搜索找到任何内容,任何指针都值得赞赏

提前谢谢

最佳答案

您可以使用代码检测(或猴子修补)来跟踪函数被调用的次数以及许多其他事情。

取一个简单的函数:

function foo () {
    console.log('bar');
}

我们可以修补该函数以跟踪调用计数。我们可以将计数保留在函数本身上,而不是用每个被修补的函数的计数来污染全局范围。这是可能的,因为 JavaScript 中的一切都是对象。

var oldFoo = foo;

foo = function () {
    ++foo.count;
    return oldFoo.apply(this, arguments);
}

foo.count = 0;

现在,如果我们调用 foo,我们将能够访问 foo.count 处的计数。这里的问题是需要三位代码才能实现这一点。第一个是跟踪旧函数,第二个是重新定义它,最后一个是将原始计数设置为 0。

我们可以通过创建一个通用的 patchMyFunc 函数来改进这一点,该函数将函数名称作为字符串接收,然后在给定补丁函数运行的上下文的情况下修改实际函数。在全局范围内,上下文将是浏览器中的窗口

function patchMyFunc (funcName) {
    var context = this;
    var oldFunc = context[funcName];

    context[funcName] = function() {
        ++context[funcName].count;
        return oldFunc.apply(context, arguments)
    }

    context[funcName].count = 0;
}

现在我们只需使用我们的函数名称调用 patch 函数就可以了。

patchMyFunc('foo');

patchMyFunc

关于javascript - 如何使用 Chrome 开发工具控制台检查文件中某个函数被调用的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513274/

相关文章:

javascript - 在 mousemove 上的 div 问题后圈出

javascript - highcharts.js : static ticks spaced equally apart

javascript - 在 Chrome 中调试时避免不相关的文件不起作用

javascript - 如何使用 Chrome 的开发工具更改局部变量的值?

google-chrome - 无法在 Chrome DevTools 中设置所需的断点?

Javascript:在运行时检索函数的文件和行位置

Javascript框架日历插件

javascript - 从 querySelectorAll 更改为 getElementsByClassName 后,按钮未按预期删除元素

javascript - 使用 jQuery 的 attr() 编写 if 语句

google-chrome - Chrome : this extension loaded itself too frequently