Přístup k vlastnostem objektu

Existují dva způsoby přístupu k vlastnostem objektu:

  • Dot Notation
  • Bracket Notation

Nejčastěji se používá dot notace. Níže se ponoříme do každé z nich a zjistíme některé rozdíly.

Tečková notace

Nejprve se podíváme na tečkovou notaci. Vezměme si tento příklad níže:

let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow

Rád bych upozornil na pátý řádek, kde používáme tečkovou notaci: let sound = obj.cat;. Jedná se o příklad tečkové notace. K vlastnostem objektu můžete přistupovat tak, že zadáte název objektu, za kterým následuje tečka (tečka) a za ní název vlastnosti. Toto je syntaxe: objectName.propertyName;.

Při práci s tečkovou notací mohou být identifikátory vlastností pouze alfanumerické (a _ a $). Vlastnosti nemohou začínat číslem.

Tečkový zápis je mnohem čitelnější než zápis v závorkách, a proto se používá častěji. Existuje však ještě druhý způsob přístupu k vlastnostem objektu, o kterém byste měli vědět. Říká se mu zápis v závorkách.

Zápis v závorkách

Tady je příklad zápisu v závorkách:

let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow

Znovu upozorňujeme na pátý řádek: let sound = obj;. K vlastnostem objektu můžete přistupovat tak, že uvedete název objektu následovaný názvem vlastnosti v závorce. Zde je syntaxe: objectName.

S zápisem v závorkách jste se pravděpodobně setkali při práci s poli. V následujícím příkladu budeme přistupovat k druhému prvku v našem arr pomocí syntaxe: arrayName

let arr = ;let letter = arr;console.log(letter);
// b

Zápis v závorkách je však užitečný i při práci s objekty.

Při práci se zápisem v závorkách musí být identifikátory vlastností pouze řetězec. Mohou obsahovat libovolné znaky včetně mezer. Lze použít i proměnné, pokud se proměnná převádí na řetězec String.

Při práci se zápisem v závorkách tedy existuje méně omezení. V řetězcích nyní můžeme mít mezery a dokonce můžeme řetězce začínat čísly.

Snad nejdůležitější je, že nyní můžeme proměnné používat k přístupu k vlastnostem objektu. Je důležité, aby proměnná, kterou používáte, odkazovala na řetězec.

Podívejte se na tento příklad proměnné. Možná bude zpočátku trochu matoucí, proto mějte strpení:

let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow

Výše uvedený příklad je podobný předchozímu příkladu, který jsme již viděli. Hlavní rozdíl je v tom, že nyní používáme k předání proměnné zápis v závorkách. Pozor, může to vypadat, že v našem obj hledáme vlastnost dog, ale není to celé správně. dog je proměnná s hodnotou 'cat'. Protože používáme závorky, předáváme hodnotu řetězce a hledáme vlastnost 'cat'obj. Do konzoly se tedy zapíše meow.

Níže zkusíme provést totéž, ale s tečkovým zápisem:

let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof

Hned na začátku byste si měli všimnout, že se nám vrátí woof. To je velmi odlišné od druhého příkladu a je to proto, že nemůžeme používat proměnné s tečkovým zápisem. Pokus o vyhledání obj.dog ve skutečnosti pouze vyhledá řetězcovou hodnotu 'dog' v rámci našeho objektu, místo aby použil hodnotu proměnné. Tedy obj.dog vrátí woof.

Recap

Existuje několik důležitých rozdílů mezi tečkovým a závorkovým zápisem:

Tečkový zápis:

  • Identifikátory vlastností mohou být pouze alfanumerické (a _ a $)
  • Identifikátory vlastností nemohou začínat číslem.
  • Identifikátory vlastností nemohou obsahovat proměnné.
  • OK – obj.prop_1, obj.prop$
  • Není OK – obj.1prop, obj.prop name

Zápis v raketě:

  • Identifikátory vlastností musí být řetězec nebo proměnná, která odkazuje na řetězec.
  • Je v pořádku používat proměnné, mezery a řetězce začínající čísly
  • OK – obj, obj

Díky za přečtení! Pokud jste připraveni se konečně naučit vyvíjet webové stránky, podívejte se na knihu The Ultimate Guide to Learning Full Stack Web Development in 6 months za 30 dolarů. Pokud chcete jen zlepšit své dovednosti v JavaScriptu, podívejte se na:

Každý týden publikuji 4 články o vývoji webových aplikací. Pokud chcete být jednou týdně zařazeni do mého e-mailového seznamu, zvažte prosím zadání svého e-mailu zde nebo mě sledujte na Twitteru

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.