TOC

This article has been localized into Czech by the community.

Objekty:

Úvod

V tomto tutoriálu jsme již probrali primitivní datové typy v JavaScriptu, jako jsou čísla, řetězce, logické hodnoty a tak dále. Celkem existuje 7 primitivních datových typů a pak jeden datový typ považovaný za složitý: Objekt.

Rozdíl mezi jednoduchým a složitým datovým typem je obecně považován za to, zda typ obsahuje jednu nebo více hodnot. Například číslo bude držet pouze hodnotu, např. 42, ale objekt je ve skutečnosti sbírkou dalších klíčů a hodnot, což vám umožňuje ukládat v něm více hodnot. Tyto hodnoty mohou být primitivní typy, jako jsou čísla a řetězce, ale mohou to být také další objekty, což vám umožňuje mít objekty objektů (vnější).

Vzhledem k tomu, že objekty jsou jediným složitým typem nalezeným v JavaScriptu, můžete si pravděpodobně představit, že hrají poměrně důležitou roli. Ve skutečnosti, kamkoli se v JavaScriptu podíváte, narazíte na objekty: Jsou zde vestavěné objekty, o kterých jsme již hovořili, jako je Date a Math. Existují pole, která jsou ve skutečnosti jen instancemi objektu Array, a tak dále.

Vytváření objektu

V mnoha programovacích jazycích často potřebujete definovat třídu (o třídách si povíme v další kapitole) a pak vytvořit její instanci, abyste získali objekt. V JavaScriptu však objekty přišly daleko před konceptem tříd a lze je snadno vytvářet a používat bez definování třídy.

Nový objekt můžete vytvořit instancováním typu Object, takto:

let obj = new Object();

To povede k vytvoření prázdného objektu.

Nicméně v JavaScriptu se složené závorky používají často při práci s objekty. To nám také umožňuje používat syntaxi inicializátoru objektů, takto:

let obj = {};

Toto je syntaxe, kterou uvidíte nejčastěji při práci s JavaScriptem - je kratší a také nám umožňuje snadno vytvořit nový objekt a přidat k němu vlastnosti během jeho vytváření:

let user = 
{
	name: "John Doe",
	age: 42
};

To vytvoří objekt se dvěma vlastnostmi: jméno a věk.

Použití objektu

Jakmile máme objekt, můžeme přistupovat ke všem vlastnostem a/nebo metodám, které by mohl obsahovat, odkazem na objekt, který jsme právě vytvořili (uživatel), pak tečkou a pak názvem vlastnosti/metody, ke které chceme přistoupit. Zde je úplnější příklad:

let user = 
{
	name: "John Doe",
	age: 42
};
alert(user.name + " is " + user.age + " years old");

Jak vidíte, je velmi snadné jak definovat, tak přistupovat k vlastnostem objektu.

Procházení objektu ve smyčce

Již jsme zmínili, že objekt je v podstatě jen sbírka klíčů a hodnot. Již jsme viděli, jak můžeme definovat vlastnosti napsáním názvu (klíče) vlastnosti, dvojtečky a poté hodnoty vlastnosti. To nám umožňuje přistupovat k hodnotě vlastnosti pomocí řetězce, buď přímo, nebo z proměnné, takto:

let user = 
{
	name: "John Doe",
	age: 42
};

let key = "name"
alert(user[key]);

Všimněte si, že nyní používám jinou notaci, kde specifikujeme název vlastnosti (nebo proměnnou obsahující název) v sadě hranatých závorek, namísto toho, aby byl za tečkou. Toto podrobněji probereme v dalším článku, kde se podrobněji zaměříme na vlastnosti objektů, ale prozatím to použiji k ilustraci toho, jak nám to také umožňuje projít objekt a přistupovat ke všem klíčům/hodnotám bez znalosti jejich názvů:

let user = 
{
	name: "John Doe",
	age: 42
};

for(let propKey in user)
	alert(propKey + " = " + user[propKey]);

Používám smyčku for...in, kterou jsme již v tomto tutoriálu probírali, abych získal každý název vlastnosti/klíč z objektu, a poté používám klíč k získání hodnoty. Je to poměrně jednoduché, ale dá se to použít k dosažení některých docela dobrých věcí!

Shrnutí

Po přečtení tohoto článku byste měli mít lepší pochopení toho, co je objekt, jak můžete vytvořit vlastní objekty a definovat/používat jejich vlastnosti. Také jsme diskutovali o tom, že objekty jsou jen páry klíč/hodnota, což vám umožňuje procházet je a přistupovat ke každé z jejich vlastností a jejich odpovídajícím hodnotám.

S tímto vším na místě jste nyní připraveni přejít k dalšímu článku, kde se mnohem hlouběji ponoříme do tématu vlastností objektů.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!