Verlängere ich die console-Objekt (für die Umleitung der Anmeldung) in javascript?
Ist es möglich zu verlängern die console-Objekt?
Habe ich versucht, etwas wie:
Console.prototype.log = function(msg){
Console.prototype.log.call(msg);
alert(msg);
}
Aber das hat nicht funktioniert.
Ich möchte hinzufügen, zusätzliche Protokollierung auf der Konsole ein Objekt über den Rahmen, wie log4javascript und verwenden immer noch die standard-Konsole-Objekt (in Fällen, in denen log4javascript ist nicht verfügbar) in meinem code.
Vielen Dank im Voraus!
- warum sind Sie Verlängerung der Prototyp-Objekt anstelle der Verlängerung der
Console
Objekt selbst? Haben Sie jemals rufen Sienew Console()
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgendes versuchen:
Verwenden Sie die proxy-pattern, siehe meine Antwort aus einem ähnlichen Fall:
JavaScript: Überschreiben von alert()
Hoffe, das hilft
Können Sie Auch hinzufügen log-Zeit in Dieser Weise :
Hinzugefügt Momentjs oder verwenden Sie New Date() statt moment.
Bemerkte ich, dass die oben genannten Verwendung von Array.der Prototyp.unshift.Anruf von nitesh einen besseren Weg, fügen Sie die "Verbose:" tag.
Für ECMAScript 2015 und später
Können Sie die neuere Version verwenden Proxy Funktion aus der ECMAScript 2015 standard zu "Kapern" die Globale console.melden.
Source-Code
Online-Demo
Repl.es.
Node.js Benutzer...
... Ich habe dich nicht vergessen. Kann man mit diesem source-code, und ersetzen Sie
window.console
durchgloabl.console
ordnungsgemäß verwiesen das console-Objekt (und, natürlich, loszuwerden, diealert
nennen). In der Tat, ich schrieb diesen code zunächst und getestet Node.js.Es ist wirklich die gleiche Lösung einige andere gegeben haben, aber ich glaube, das ist die eleganteste und am wenigsten hacky Weg, dies zu erreichen. Die Verbreitung syntax (...args) macht sicher, dass nicht ein einziges argument verloren.