Zaujímavé informácie pre vývoj aplikácií v jazyku JavaScript - časť 1
V tomto článku predstavím dve zaujímavé riešenia, ktoré môžu byť nápomocné pri vývoji aplikácií v jazyku JavaScript.
Metóda toString()
Prvým riešením je vytvorenie vlastnej metódy toString(), ktorá štandardne pri aplikácií na inštanciu objektu vráti [object Object]. Príklad: Bežný výstup metódy toString().
1
2
3
4
5
6
7
function Obj(){
this.prop = 1;
this.method =function(){
};
}
var obj =new Obj();
console.log(obj.toString());
Metódu toString() je možné využiť napríklad na výpis obsahu objektu. Definovanie metódy toString() je možné v constructore alebo cez prototype. Príklad: Výpis objektu cez toString(), ktorý je definovaný v constructore.
1
2
3
4
5
6
7
8
9
10
function Obj(){
this.prop = 1;
this.method =function(){
};
this.toString =function(){
console.log(this);
};
}
var obj =new Obj();
obj.toString();
Príklad: Výpis objektu cez toString(), ktorý je definovaný cez prototype.
1
2
3
4
5
6
7
8
9
10
function Obj(){
this.prop = 1;
this.method =function(){
};
}
var obj =new Obj();
Obj.prototype.toString =function(){
console.log(this);
}
obj.toString();
Metódu toString() je možné aplikovať aj na literál.Príklad: Aplikovanie toString() na literál cez prototype.
1
2
3
4
5
6
7
8
9
var obj ={
prop : 1,
method : function(){
}
};
obj.constructor.prototype.toString =function(){
console.log(this);
}
obj.toString();
Príklad: Prepísanie toString() v literáli.
1
2
3
4
5
6
7
8
9
var obj ={
prop: 1,
method: function(){
},
toString: function(){
console.log(this);
}
};
obj.toString();
Použitie console.trace()
Ďalším zaujímavým riešením je console.trace(). Aj keď ide o neštandardizovaný zápis, je už podporovaný majoritnými internetovými prehliadačmi. Zápis console.trace() je v podstate Call Stack.Príklad: Príklad použitia console.trace().
1
2
3
4
5
6
7
8
9
10
11
12
function start(){
middle();
}
function middle(){
final();
}
function final(){
console.trace();
}
start();
Prečo a kedy využiť console.trace()? Tak ako je niekedy oveľa rýchlejšie aplikovať príkaz debugger, tak môže byť niekedy efektívnejšie použiť console.trace(). Nemusíte v debuggeri hľadať súbory a miesta, kde aplikovať breakpoint, najmä ak sa používa obfuskácia. Zároveň je možné console.trace() umiestniť do výnimiek či blokov pre spracovanie chýb. Vhodné aplikovanie console.trace() vždy ukáže prax, kedy nastane situácia, že takéto riešenie je pre analýzu problému efektívnejšie.
Záver
Do pozornosti dávam príkaz console.dir(), o ktorom sa viac dozviete v článku Ako zobraziť vlastnosti uzla. 30.8.2016 (aktualizované 31.8.2016), Matej LednárKategória: JavaScriptJavaScript,console.log(),console.dir(),console.trace(),prototypeŽiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.Viac informácií nájdete v sekcii O projekte.