Dostęp do właściwości obiektu
Istnieją dwa sposoby dostępu do właściwości obiektu:
- Notacja kropkowa
- Notacja nawiasowa
Notacja kropkowa jest używana najczęściej. Poniżej zagłębimy się w każdą z nich i odkryjemy niektóre z różnic.
Notacja kropkowa
Najpierw przyjrzyjmy się notacji kropkowej. Rozważmy poniższy przykład:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow
Chcę zwrócić twoją uwagę na piątą linię, gdzie używamy notacji kropkowej: let sound = obj.cat;
. To jest właśnie przykład notacji kropkowej. Możesz uzyskać dostęp do właściwości obiektu, określając nazwę obiektu, a następnie kropkę (kropka) po nazwie właściwości. Tak wygląda składnia: objectName.propertyName;
.
Podczas pracy z notacją kropkową identyfikatory właściwości mogą być tylko alfanumeryczne (oraz
_
i$
). Właściwości nie mogą zaczynać się od liczby.
Notacja kropkowa jest znacznie łatwiejsza do odczytania niż notacja nawiasowa i dlatego jest częściej stosowana. Istnieje jednak drugi sposób dostępu do właściwości obiektu, o którym powinieneś wiedzieć. Nazywa się on notacją nawiasową.
Notacja nawiasowa
Oto przykład notacji nawiasowej:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow
Ponownie, zwróć uwagę na piątą linię: let sound = obj;
. Możesz uzyskać dostęp do właściwości obiektu przez podanie nazwy obiektu, a następnie nazwy właściwości w nawiasach. Oto składnia: objectName
.
Zapewne widziałeś już notację nawiasową podczas pracy z tablicami. W poniższym przykładzie uzyskamy dostęp do drugiego elementu w naszej arr
używając składni: arrayName
let arr = ;let letter = arr;console.log(letter);
// b
Ale notacja nawiasowa jest również przydatna podczas pracy z Obiektami.
Przy pracy z notacją nawiasową, identyfikatory właściwości muszą być tylko Stringiem. Mogą one zawierać dowolne znaki, w tym spacje. Zmienne mogą być również używane tak długo, jak zmienna rozwiązuje do String.
To oznacza, że istnieje mniej ograniczeń podczas pracy z notacji nawiasów. Możemy teraz mieć spacje w naszych łańcuchach, a nawet możemy zaczynać łańcuchy od liczb.
Prawdopodobnie najważniejsze jest to, że możemy teraz używać zmiennych, aby uzyskać dostęp do właściwości w obiekcie. Ważne jest, aby zmienna, której używasz, odwoływała się do Stringa.
Przyjrzyjrzyj się temu przykładowi zmiennej. Może to być trochę mylące na początku, więc wytrzymaj ze mną:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow
Powyższy przykład jest podobny do poprzedniego przykładu, który już widzieliśmy. Główną różnicą jest to, że teraz używamy notacji nawiasowej do przekazania zmiennej. Uważaj, może to wyglądać jakbyśmy szukali właściwości dog
w naszym obj
, ale to nie jest do końca poprawne. dog
jest zmienną o wartości 'cat'
. Ponieważ używamy nawiasów, wartość łańcucha jest przekazywana i szukamy właściwości 'cat'
w obj
. Tak więc, meow
jest logowane do konsoli.
Poniżej spróbujemy zrobić to samo, ale z notacją kropkową:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof
Od razu powinieneś zauważyć, że otrzymujemy woof
. Różni się to bardzo od poprzedniego przykładu, a to dlatego, że nie możemy używać zmiennych z notacją kropkową. Próba wyszukania obj.dog
będzie w rzeczywistości szukała tylko wartości łańcuchowej 'dog'
wewnątrz naszego obiektu, zamiast użyć wartości zmiennej. Tak więc, obj.dog
zwraca woof
.
Recap
Istnieją pewne ważne różnice między notacją kropkową i nawiasową:
Notacja kropkowa:
- Identyfikatory właściwości mogą być tylko alfanumeryczne (i
_
i$
) - Identyfikatory właściwości nie mogą zaczynać się od liczby.
- Identyfikatory właściwości nie mogą zawierać zmiennych.
- OK –
obj.prop_1
,obj.prop$
- Not OK –
obj.1prop
,obj.prop name
Notacja nawiasowa:
- Identyfikatory właściwości muszą być Stringiem lub zmienną, która odwołuje się do Stringa.
- Dobrze jest używać zmiennych, spacji i łańcuchów zaczynających się od liczb
- OK –
obj
,obj
Dziękuję za przeczytanie! Jeśli jesteś gotowy, aby w końcu nauczyć się Web Development, sprawdź The Ultimate Guide to Learning Full Stack Web Development w 6 miesięcy, za 30 dolarów. Jeśli chcesz po prostu poprawić swoje umiejętności JavaScript, sprawdź: A Beginners Guide to Advanced JavaScript
W każdym tygodniu publikuję 4 artykuły na temat rozwoju sieci. Proszę rozważyć wprowadzenie swojego e-maila tutaj, jeśli chciałbyś zostać dodany do mojej raz w tygodniu listy e-mailowej, lub śledzić mnie na Twitterze.