javascript - 将全局命名空间中的特定事件记录到控制台

标签 javascript

我有一个库,它将函数公开给全局命名空间,以便其他模块调用它们。 每当调用此函数之一时,我都想将其记录到控制台,包括参数。

所以在控制台中:

window.globalLibrary

将返回

{foo: ƒ, bar: ƒ,}

我想要实现的是每当时放置一个事件监听器

window.globalLibrary.foo(‚testparam‘);

被调用。我仔细观察了一下:

window.addEventlistener(); 

但似乎这些事件都不适合我的情况。

有人可以帮忙吗?谢谢!

最佳答案

您可以对所有函数进行猴子修补,以便它们登录到控制台。

window.globalLibrary = {
  func1: function() {
    console.log("Real func1");
    return "func1";
  },
  obj: "This isn't a function",
  func2: function(a, b) {
    console.log("Real func2");
    return a * a + b;
  }
};

Object.keys(window.globalLibrary).forEach(function(prop) {
  if (typeof window.globalLibrary[prop] == "function") {
    var func = window.globalLibrary[prop];
    window.globalLibrary[prop] = function() {
      console.log("Calling: " + prop + "(" + Array.from(arguments) + ")");
      return func.apply(this, arguments);
    };
  }
});

console.log(globalLibrary.func1());
console.log(globalLibrary.func2(10, 35));
console.log(globalLibrary.obj);

关于javascript - 将全局命名空间中的特定事件记录到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46855231/

相关文章:

javascript - Canvas 在 HTML 文件中工作,但在 javascript 文件中不工作

javascript - Azure 认知服务关于 Blazor 的演讲 - C#/JS?极度困惑

.net - 需要 JavaScript 代码方面的帮助

php - 将参数从 php 传递到 javascript

javascript - 如何使用ajax post请求从输入中放入参数?

javascript - Node.js path.join 的参数必须是字符串,但参数是路径

javascript - 在 Node js 中以 zip 格式从 amazon s3 存储桶下载图像

javascript - 将两个唯一对象推送到一个空数组会导致一个包含 2 个等效对象的数组

javascript - 如何修复拖动时数据表中标题的设计

Javascript - 提取跨度值