Debug-Funktionen für JavaScript
Schnell und einfach Objekteigenschaften auslesen
Häufig sieht man sich bei der Arbeit mit JavaScript mit der Situation konfrontiert, dass man statt mit einer ausgereiften Entwicklungsumgebung mit integriertem Debugger mit einem blanken Texteditor Vorlieb nehmen muss. Insbesondere bei der Arbeit mit DOM-Objekten wird die Fehlersuche dann weniger komfortabel als man es sich vielleicht wünscht
JavaScript bietet nun allerdings die Möglichkeit, bequem Eigenschaften und Methoden von Objekten zur Laufzeit zu erfragen. Damit kann man sich zwei hilfreiche Funktionen basteln, mit denen man Eigenschaftswerte von Objekten sichtbar machen kann.
[code lang="javascript"]
function obj2str (p_Obj) {
var strText = "";
var i = 0;
for (prop in p_Obj) {
strText += i++ + " " + prop + ": " + p_Obj[prop] + "\n";
}
return strText;
}
function printObject (p_Obj) {
var wnd = window.open ();
var str = obj2str (p_Obj);
str = str.replace (/\ str = str.replace (/\>/g, ">");
wnd.document.write ("
");
wnd.focus ();
}
[/code]
Durch den Aufruf von printObject (obj) öffnet sich ein Browserfenster, das alle Eigenschaften von obj inklusive ihrer Inhalte ausgibt.
Zum Debugging von Funktionsaufrufen ist die folgende Funktion hilfreich:
[code lang="javascript"]
Function.prototype.callString=function(){
var args = this.arguments;
var str = this.caller + " \n --calls--> \n \t (";
for (var i = 0; i < args.length - 1; i++) {
str += args[i] + ", ";
}
str += args[args.length-1] + ") \n";
str += this.toString ();
return str;
};
[/code]
Der Aufruf erfolgt über
[code lang="javascript"]
function callString (p_strFuncName) {
var fn = eval (p_strFuncName);
alert (p_strFuncName + ": " + fn.callString ());
}
[/code]
CallString gibt den Code einer Funktion samt Aufrufparameter aus.
Folgende Kommentare wurden auf unserem alten Blog zu diesem Beitrag veröffentlicht:
Herr Bert schreibt: November 24th, 2007 at 6:30
Prima! unkompliziert, aber trotzdem sehr hilfreich – genau so, wie es sein soll Danke für den Tipp