本文概述
- ?为什么要覆盖console方法?
- 覆盖console.log
- 覆盖其他console方法
现在, 很严重的是, 你可能想覆盖console方法, 例如对项目进行更好的错误报告。
如果你正在一个现有项目中工作, 并且想要对失败的东西进行自动错误报告, 而不是创建一个名为ReportError的新方法, 并在每个console.error或console.log之前添加它, 或者删除这些行, 那么它将是最好在某处添加几行并覆盖现有方法(不删除实际操作)。
覆盖console.log【如何覆盖JavaScript中的console方法】要覆盖console方法, 我们只需要重新定义该方法的执行方式即可。你需要包装代码, 以防止其他功能访问私有(原始)方法。
(function(){
// Save the original method in a private variable
var _privateLog = console.log;
// Redefine console.log method with a custom function
console.log = function (message) {
// Here execute something with the given message or arguments variable
// alert("Our Custom Log Says: " + message);
/**
Note: If you want to preserve the same action as the original method does
then use the following line :
we use apply to invoke the method on console using the original arguments.
Simply calling _privateLog(message) would fail because LOG depends on the console
*/
_privateLog.apply(console, arguments);
};
})();
注意:前面的代码将完成最后的技巧。你可以使用它来覆盖其他属性。
覆盖其他console方法以下示例将覆盖所有众所周知的console方法(错误, 警告和信息)。
(function(){
var _log = console.log;
var _error = console.error;
var _warning = console.warning;
console.error = function(errMessage){
ImaginarySendMailErrorMethod(errMessage);
// Send a mail with the error description
_error.apply(console, arguments);
};
console.log = function(logMessage){
// Do something with the log message
_log.apply(console, arguments);
};
console.warning = function(warnMessage){
// do something with the warn message
_warning.apply(console, arguments);
};
})();
玩得开心 !
推荐阅读
- IntersectionObserver功能(Chrome 51功能,知道特定元素何时处于视口内或视口外)
- “use strict”是什么(用JavaScript表示)
- 如何使用JavaScript从网络摄像头生成ascii艺术照片
- 如何使用javascript将URL(网站,电子邮件)从字符串转换为html标签
- 如何防止修改JavaScript中的对象并防止它们在控制台中访问
- 如何使用XMLHttpRequest(jQuery Ajax)绕过”Access-Control-Allow-Origin”错误
- 鸿蒙初体验-五子棋
- 在校生下午试题60分通过软考网工经验谈!
- 预告(2009年下半年软考试题及答案51CTO将实时发布)