Как переопределить консольные методы в Javascript

¿Зачем переопределять консольные методы?

Исключая тех, кто просто приходит на этот пост по внешним причинам, я не знаю, вы тот, кто ищет в Интернете, как переопределить консольные методы !.

А если серьезно, вы можете переопределить консольные методы, например, для создания лучшего отчета об ошибках вашего проекта.

Если вы работаете в существующем проекте и хотите создать автоматизированное сообщение об ошибке чего-то, что не удалось, вместо создания нового метода с именем ReportError и добавить его перед каждым console.error или же console.log или удалите эти строки, было бы лучше просто добавить пару строк куда-нибудь и переопределить существующие методы (без удаления фактического действия).

Переопределение console.log

Чтобы переопределить консольный метод, нам просто нужно переопределить, как метод выполняется. Вам нужно будет обернуть свой код, чтобы предотвратить доступ других функций к частному (оригинальному) методу.

(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);
};
})();

Примечание: предыдущий код сделает последний трюк. Вы можете использовать его для переопределения других свойств.

Переопределение других методов консоли

В следующем примере будут переопределены все известные методы консоли (ошибка, предупреждение и информация).

(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);
};
})();

Повеселись !

Ссылка на основную публикацию
Adblock
detector