×
Creating solutions

Ako zobraziť obsah objektu v JavaScripte

Každého začínajúceho programátora skôr či neskôr stretne problém, ako zobraziť obsah objektu. Pri aplikovaní často používaného zápisu document.write() je výsledkom text [object Object]. V rámci good practices programátori zápis document.write() nepoužívajú. Tí pracujú len s konzolou. Pre vloženie obsahu do dokumentu HTML sa namiesto document.write() používajú vlastnosti a metódy DOM.
Ale vráťme sa späť k zobrazeniu obsahu objektu. To je možné vykonať viacerými spôsobmi. Jedným z nich je aj prechádzanie objektu prostredníctvom cyklu for in.
Príklad: Vytvorenie objektu s vlastnosťou property a metódou method.
1
2
3
4
5
6
var Obj = {
property: 1,
method: function objectMethod() {
console.log(this.property);
}
};
Cyklus for in obsahuje dve premenné. Do prvej premennej, ktorá môže mať ľubovolný platný názov, sa budú ukladať nájdené vlastnosti a metódy objektu. Objekt, ktorý má byť prehľadávaný, je zadaný ako druhý (pravý) operand za operátorom in.
Príklad: Výpis obsahu objektu cez cyklus for in.
1
2
3
for (var property in Obj) {
console.log(property + ": " + Obj[property]);
}
Príklad: Odporúčaný zápis cyklus for in.
1
2
3
4
5
var property;
for (property in Obj) {
console.log(property + ": " + Obj[property]);
}
V prípade, že niektorá vlastnosť objektu je ďalší objekt, je potrebné vykonať rekurziu. V takomto prípade je potrebné zisťovať dátový typ vlastnosti napríklad cez operátor typeof. V prípade používania niektorej z JavaScriptových knižníc príslušnú metódu.
Okrem cyklu for in sú k dispozícii aj dve metódy objektu console. Ich použitie je rýchlejšie a výstup je prehľadnejší. Vďaka metódam objektu console nie je potrebné zasahovať do programového kódu. Stačí ktorúkoľvek z nich len zapísať do konzoly. Výstup je navyše možné prechádzať, zbaľovať a rozbaľovať. Konzola je súčasťou Developer Tools v internetovom prehliadači. Zapísať do konzoly je samozrejme možné aj cyklus for in.
Príklad: Metódy log() a dir() objektu console.
1
2
console.log(Obj);
console.dir(Obj);

Ktorý spôsob je lepší?

Výhodou prechádzania objektu cez príkaz for in je možnosť výpisu obsahu metód. Nevýhodou je, že nie je vidieť aké ostatné vlastnosti a metódy objekt obsahuje (napr. hasOwnProperty(), isPrototypeOf(), toString() a ďalšie). Pri zobrazení obsahu objektu cez objekt console zase nie je vidieť obsah metód. Z hľadiska efektívnosti je vhodnejšie používať metódy objektu console.

Záver

V článku boli predstavené viaceré spôsoby výpisu obsahu objektu v jazyku JavaScript. Na záver len dodám, že staršie internetové prehliadače konzolu neobsahujú.
Autor: Matej Lednár
Dátum: 30.12.2012
Kategória: JavaScript
Značky:
programovanie, javascript, oop, for in, console, console log, console dir


JavaScript,programovanie,JavaScript,OOP,for in,console,console log,console dir
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest