Co je objekt

Zatím měla každá proměnná jednu hodnotu: číslo, text nebo pole podobných hodnot. V této lekci poznáte objekty. Objekt drží pohromadě několik hodnot, které popisují jednu věc.

Představte si obchod se zvířaty, který si vede záznamy o svých zvířatech. Každé zvíře má jméno, druh a věk. Mohli byste je uložit do samostatných proměnných:

const jmenoZvirete = "Rex";
const druhZvirete = "pes";
const vekZvirete = 3;

Pro jedno zvíře to funguje, ale pro deset zvířat byste potřebovali třicet proměnných a z kódu by nebylo poznat, které k sobě patří. Hodnoty byste mohli dát také do pole:

const zvire = ["Rex", "pes", 3];

Teď jsou pohromadě, ale musíte si pamatovat, že na indexu 0 je jméno a na indexu 1 druh. A co znamená zvire[2]? To z kódu nevyčtete.

Objekt řeší oba problémy. Drží hodnoty pohromadě a každou z nich pojmenuje:

const zvire = {
    jmeno: "Rex",
    druh: "pes",
    vek: 3
};

Objekt se píše do složených závorek { }. Uvnitř jsou jeho vlastnosti oddělené čárkami. Každá vlastnost má klíč (svůj název: jmeno, druh, vek), za ním dvojtečku a hodnotu. Klíče pište jako názvy proměnných, bez uvozovek a bez diakritiky. Hodnotou může být cokoli, co znáte: text, číslo, booleovská hodnota i pole.

Krátký objekt se vejde na jeden řádek, delší se lépe čte, když je každá vlastnost na vlastním řádku jako výše. Oba zápisy znamenají totéž. Když objekt vypíšete, konzole ho ukáže na jednom řádku, tak, jak se píše v kódu:

const zvire = { jmeno: "Rex", druh: "pes", vek: 3 };
console.log(zvire);
{ jmeno: "Rex", druh: "pes", vek: 3 }

Stejně jako u polí nespojujte objekt s textem pomocí +: "Zvíře: " + zvire udělá z objektu text [object Object], který vám moc neřekne. Oddělte je raději čárkou: console.log("Zvíře:", zvire).

Dvě typické chyby při psaní objektů. Když zapomenete čárku mezi dvěma vlastnostmi:

const zvire = { jmeno: "Rex" druh: "pes" };

program skončí chybou SyntaxError: Unexpected identifier 'druh' (nečekaný název): JavaScript další klíč nečekal, protože před ním chybí čárka. A uvnitř složených závorek se píše dvojtečka, ne =:

const zvire = { jmeno = "Rex" };

Tento kód skončí chybou SyntaxError: Invalid shorthand property initializer. Hláška vám moc nepomůže, a tak si ji zapamatujte: když ji uvidíte, hledejte = uvnitř složených závorek.

Pokyny

Smažte tři proměnné i console.log. Místo nich vytvořte konstantu zvire s objektem, který má tyto vlastnosti v tomto pořadí: jmeno s hodnotou "Rex", druh s hodnotou "pes", vek s hodnotou 3 a ockovane s hodnotou true. Vypište ho pomocí console.log(zvire);. V konzoli by se mělo objevit { jmeno: "Rex", druh: "pes", vek: 3, ockovane: true }.

Pod to vypište objekt ještě jednou, tentokrát s popiskem Zvíře: na začátku. Popisek a objekt oddělte čárkou. Nový řádek by měl být Zvíře: { jmeno: "Rex", druh: "pes", vek: 3, ockovane: true }.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

1/9