-
Udělala jsem program,
-
který o Winstonovi prozrazuje
řadu zajímavých detailů.
-
Ale neprozrazuje úplně vše,
protože si to Winston nepřeje.
-
Tak to prostě Winston chce.
-
Pojďme se podívat, jak jsem
tento program vytvořila.
-
Nejdřív jsem vytvořila proměnné,
které v sobě ukládají části informací.
-
První proměnná obsahuje
číslo, Winstonův věk.
-
Druhá proměnná obsahuje
textový řetězec, jeho oči.
-
A třetí proměnná obsahuje
pole řetězců,
-
což jsou věci, které
Winston rád dělá.
-
A poslední dvě proměnné
obsahují řetězce,
-
které popisují Winstonovo
místo narození.
-
A tady dolů jsem informace vypsala
pomocí textových příkazů a proměnných.
-
U pole musím samozřejmě
zpřístupnit každý z jeho prvků.
-
K tomu používám
zápis v závorce.
-
Všech pět proměnných popisují
jednu a tu samou věc: Winstona.
-
Proměnné ale nevědí,
že popisují tu samou věc.
-
Když chceme v JavaScriptu uložit
hromadu souvisejících informací,
-
používáme k tomu
mnohem lepší způsob.
-
A tím způsobem je "objekt".
-
To znamená, že namísto pěti
proměnných nám stačí jedna,
-
která všechny naše
informace uloží pohromadě.
-
Pojďme si to vyzkoušet
na Winstonových informacích.
-
Nejdříve si vytvoříme proměnnou
a nazveme ji Winston.
-
Poté vložíme složené závorky.
-
Dejte si pozor, aby byly
složené a ne hranaté.
-
A na konec dáme prostředník.
-
Vytvořili jsme objekt!
-
Neobsahuje ale žádné informace.
-
Aby nějaké informace obsahoval,
musíme mu dát nějaké vlastnosti.
-
A každá vlastnost se skládá
z klíče a hodnoty.
-
Věk napíšeme následovně:
age: 19.
-
A oči napíšeme takhle:
eyes: "black"
-
Winston má teď uvnitř
svého objektu dvě vlastnosti.
-
Pro koníčky napíšeme "likes: "
a překopírujeme horní část kódu.
-
Takže Winston už má
tři vlastnosti.
-
Každá z vlastností má klíč,
který je na levé straně,
-
a pak hodnotu,
která je na pravé straně.
-
Pro klíč platí stejná pravidla jako
pro jména proměnných v JavaScriptu.
-
Žádné mezery, začínáme
písmenem a tak dále.
-
Co se týče hodnoty,
-
může se jednat o jakoukoli hodnotu,
na kterou jsme zatím narazili.
-
Může to být číslo, řetězec, pole...
-
Mohl by to dokonce být i boolean.
-
Můžeme napsat "isCool: true",
což je samozřejmě pravda.
-
Popravdě můžeme jako hodnotu
použít i nějaký jiný objekt.
-
Například město a stát
narození jsou informace,
-
které popisují tu samou věc.
-
Jedno a to samé místo.
-
Dávalo by proto smysl, abychom
hodnotu uložili jako objekt.
-
Přidám další klíč,
místo narození.
-
A jako hodnotu nejdřív
vložím složené závorky.
-
Uvnitř pak budu mít klíč
pro město, "city: ".
-
"Mountain View"
-
A stát, "state: ".
-
"California".
-
A teď už můžete do objektu
ukládat celkem detailní informace.
-
A protože už máme
tento pěkný objekt,
-
který o Winstonovi
prozrazuje zajímavé informace,
-
můžeme všechny tyto
zastaralé proměnné smazat.
-
A dostali jsme chybové hlášení!
-
Je to kvůli tomu, že naše textové
příkazy odkazují na staré proměnné.
-
Musíme informace aktualizovat
a použít informace z objektu.
-
Začneme tím, že zakomentujeme
poslední tři řádky kódu,
-
abychom je mohli
aktualizovat jeden po druhém.
-
Momentálně zde máme "winstonAge"
a potřebujeme to něčím nahradit.
-
Nejprve napíšeme "winston",
což je název proměnné.
-
Všimněte si, že pokud to necháme tak,
dostaneme hlášení "object Object".
-
A to není vůbec hezké.
-
Je to zpráva JavaScriptu,
-
která nám říká, že se snažíme převést
celý objekt do řetězcové hodnoty.
-
My se ale snažíme získat
pouze vnitřní hodnotu pro věk.
-
Takže za to napíšeme tečku,
"winston." a napíšeme název klíče.
-
Klíčem je "age".
-
A máme věk!
-
Toto se nazývá tečkový zápis.
-
Je to typ zápisu,
-
kdy nejprve napíšeme název proměnné
objektu, tečku a pak klíč dané vlastnosti.
-
Podobně můžeme dodělat zbytek.
-
Tohle odkomentuji.
-
A namísto "winstonEyes"
napíšeme "winston.eyes".
-
A tady to bude "winston.likes".
-
A potom "winston.likes[1]".
-
A pro tento poslední to bude
o trošku komplikovanější,
-
protože se jedná o objekt
uvnitř jiného objektu.
-
Napíšeme "winston.birthplace",
-
což ale pořád odkazuje
k celému objektu.
-
A proto musíme napsat
"winston.birthplace.city".
-
A tady napíšeme
"winston.birthplace.state".
-
Toto se celkem hodí,
-
protože se můžete vnořovat
do objektů, které jsou v objektech.
-
Jak můžete vidět,
-
objekty jsou skvělým způsobem, jak
uložit související informace pohromadě.
-
Můžeme je pak později
vyhledat a použít.
-
A čím více je budete používat,
tím více budete z objektů nadšeni!