我有一个库,它将函数公开给全局命名空间,以便其他模块调用它们。 每当调用此函数之一时,我都想将其记录到控制台,包括参数。
所以在控制台中:
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/