pre*_*OFT 29 javascript logging extend
是否可以扩展控制台对象?
我尝试过类似的东西:
Console.prototype.log = function(msg){
Console.prototype.log.call(msg);
alert(msg);
}
Run Code Online (Sandbox Code Playgroud)
但这没效果.我想通过像log4javascript这样的框架向控制台对象添加额外的日志记录,并且仍然在我的代码中使用标准控制台对象(在log4javascript不可用的情况下).
提前致谢!
Ser*_*sky 40
试试以下:
(function() {
var exLog = console.log;
console.log = function(msg) {
exLog.apply(this, arguments);
alert(msg);
}
})()
Run Code Online (Sandbox Code Playgroud)
这实际上与其他人给出的解决方案相同,但我相信这是完成此任务的最优雅且最简单的方法。扩展语法 (...args) 确保不会丢失任何一个参数。
var _console={...console}
console.log = function(...args) {
var msg = {...args}[0];
//YOUR_CODE
_console.log(...args);
}
Run Code Online (Sandbox Code Playgroud)