向每个函数调用添加代码的任意方法

Any way to add code to every function call

本文关键字:任意 方法 代码 添加 函数调用      更新时间:2023-09-26

我想要一种快速添加类似的东西的方法

console.log(functionName)

到每个功能的顶部。

有没有一种快速简便的方法可以做到这一点,或者我需要手动将该代码添加到每个函数中。

你可以尝试这样的事情:

for( var x in window) {
    if( typeof window[x] == "function") {
        (function(x) {
            var ox = window[x];
            window[x] = function() {
                console.log(x);
                ox.apply(null,arguments);
            };
        })(x);
    }
}

但是,这仅适用于全局函数,不适用于对象或作用域函数的函数。它也是一种核弹,因此是手动将控制台日志记录添加到要调用的特定函数的糟糕替代品。

相反,最好

在代码中插入断点(使用浏览器的开发人员工具)并在该点检查调用堆栈。

恐怕这在 JavaScript 中是不可能的,因为它不支持函数内容的运行时修改。

但是,您可以备份脚本并进行搜索和替换,以节省编辑部分的一些时间;现代编辑器支持基本的正则表达式来帮助您。

如果使用像

Frame 这样的流控制库.js则可以对应用程序中最重要的函数进行低级别访问。当然,您必须从一开始就使用 Frame 构建应用程序。如果您尝试修改已构建的应用程序,这将不起作用。