如何添加动态包装任何函数调用的 JS 代码?

发布于 2024-10-20 06:18:35 字数 102 浏览 4 评论 0原文

我想在运行时包装任何 JavaScript 调用, 例如,我想写入日志以表明已发生 Func 调用。

这种包装必须适用于任何函数,甚至是那些使用 eval 或原型添加的函数。

I had like to wrap any JavaScript invocation at runtime,
e.g. I had like to write to a log that an invocation of Func has been occurred.

This wrapping must work for any function even those function that has been added using eval or prototyping.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

惟欲睡 2024-10-27 06:18:35

您要寻找的是 node-proxy

您无法使用本机 JS 执行此操作。这仅适用于node.js。它可能可以调整为适用于在 V8 上运行的任何 js。

What your looking for is node-proxy

You can't do this using native JS. This will only work for node.js. It can probably be adjusted to work for any js running on V8.

墨小墨 2024-10-27 06:18:35

如果您要使用 call 方法调用函数,您可以执行以下操作:

oldCall = Function.prototype.call;
Function.prototype.call = function(){
 // do some logging here
 oldCall.apply(this, arguments);
}

If you were to call your functions with the call method, you could do something like this:

oldCall = Function.prototype.call;
Function.prototype.call = function(){
 // do some logging here
 oldCall.apply(this, arguments);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文