Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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 - Fatal编程技术网

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

Javascript 任何向每个函数调用添加代码的方法,javascript,Javascript,我想要一个快速的方法来添加如下内容 console.log(functionName) 到每个函数的顶部 有没有一种快速简便的方法可以做到这一点,或者我需要手动将代码添加到每个函数中。我担心JavaScript不可能做到这一点,因为它不支持运行时修改函数内容 但是,您可以备份脚本并进行搜索和替换,以节省编辑部分的时间;现代编辑器支持基本的正则表达式来帮助您解决问题。我担心JavaScript不可能做到这一点,因为它不支持运行时修改函数内容 但是,您可以备份脚本并进行搜索和替换,以节省编辑部分的

我想要一个快速的方法来添加如下内容

console.log(functionName)
到每个函数的顶部


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

我担心JavaScript不可能做到这一点,因为它不支持运行时修改函数内容


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

我担心JavaScript不可能做到这一点,因为它不支持运行时修改函数内容


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

您可以尝试以下方法:

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);
    }
}
但是,这只适用于全局函数,而不适用于对象的函数或作用域函数。它也有点像核武器,所以对于手动将控制台日志添加到您想要调用的特定函数来说,它是一个糟糕的替代品


相反,最好在代码中插入一个断点(使用浏览器的开发工具),并在该断点处检查调用堆栈。

您可以尝试以下方法:

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);
    }
}
但是,这只适用于全局函数,而不适用于对象的函数或作用域函数。它也有点像核武器,所以对于手动将控制台日志添加到您想要调用的特定函数来说,它是一个糟糕的替代品


相反,最好在代码中插入一个断点(使用浏览器的开发人员工具),并在该断点处检查调用堆栈。

如果使用流控制库(如),则可以在较低级别访问应用程序中最重要的函数。当然,您必须从一开始就使用Frame构建应用程序。如果您试图修改一个已经构建的应用程序,这将不起作用。

如果您使用流控制库(如),则您对应用程序中最重要的函数具有低级访问权限。当然,您必须从一开始就使用Frame构建应用程序。如果您试图修改已构建的应用程序,则此操作无效。

视情况而定;如果您的代码格式一致,您可能会使用编辑器regex;如果您的代码格式一致,您可能会使用编辑器regex。在运行时包装函数的可能副本将完成此工作。唯一的问题是获取所有函数的列表。@ThiefMaster没错,不过Kolink找到了一个很好的方法:)在运行时包装函数就可以了。唯一的问题是获取所有函数的列表。@ThiefMaster没错,尽管Kolink找到了一个很好的方法:)很好,我也可以使用相同的结构来循环任何我想这样做的对象。也就是说,我可以把你的can放在一个函数中,其中window只是你可以传递它的一个参数。很好,我也可以使用相同的结构来循环任何我想这样做的对象。也就是说,我可以把你的罐子放在一个函数中,窗口只是一个参数,你可以传递它。