Accesarea proprietăților unui obiect
Există două moduri de accesare a proprietăților unui obiect:
- Notarea cu puncte
- Notarea cu paranteze
Notarea cu puncte este folosită cel mai frecvent. Mai jos ne vom scufunda în fiecare dintre ele și vom descoperi unele dintre diferențe.
Notația Dot
Să ne uităm mai întâi la notația Dot. Luați în considerare acest exemplu de mai jos:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow
Vreau să vă atrag atenția asupra celui de-al cincilea rând unde folosim notația punct: let sound = obj.cat;
. Acesta este un exemplu de notație cu puncte. Puteți accesa proprietățile unui obiect prin specificarea numelui obiectului, urmat de un punct (punct) urmat de numele proprietății. Aceasta este sintaxa: objectName.propertyName;
.
Când se lucrează cu notația cu puncte, identificările proprietăților pot fi numai alfanumerice (și
_
și$
). Proprietățile nu pot începe cu un număr.
Notația cu puncte este mult mai ușor de citit decât cea cu paranteze și, prin urmare, este folosită mai des. Cu toate acestea, există un al doilea mod de a accesa proprietățile unui obiect pe care ar trebui să îl cunoașteți. Se numește notație în paranteze.
Notație în paranteze
Iată un exemplu de notație în paranteze:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow
Din nou, atrageți atenția asupra celui de-al cincilea rând: let sound = obj;
. Puteți accesa proprietățile unui obiect prin specificarea numelui obiectului urmat de numele proprietății între paranteze. Iată care este sintaxa: objectName
.
Probabil că ați văzut notația în paranteze atunci când lucrați cu Array-uri. În exemplul de mai jos, vom accesa al doilea element din arr
folosind sintaxa: arrayName
let arr = ;let letter = arr;console.log(letter);
// b
Dar notația în paranteze este utilă și atunci când se lucrează cu obiecte.
Când se lucrează cu notația în paranteze, identificatorii de proprietate trebuie să fie doar un șir de caractere. Aceștia pot include orice caractere, inclusiv spații. Se pot utiliza, de asemenea, variabile, atâta timp cât variabila se rezolvă la un String.
Aceasta înseamnă că există mai puține limitări atunci când se lucrează cu notația în paranteze. Acum putem avea spații în șirurile noastre și putem chiar să începem șirurile cu numere.
Poate cel mai important, acum putem folosi variabilele pentru a accesa proprietățile unui obiect. Este important ca variabila pe care o folosiți să facă referire la un String.
Aruncați o privire la acest exemplu de variabilă. S-ar putea să fie puțin confuz la început, așa că aveți răbdare cu mine:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow
Exemplul de mai sus este similar cu un exemplu anterior pe care l-am văzut deja. Principala diferență este că acum folosim notația în paranteze pentru a trece o variabilă. Fiți atenți, poate părea că noi căutăm proprietatea dog
în obj
, dar acest lucru nu este în întregime corect. dog
este o variabilă cu o valoare de 'cat'
. Din moment ce folosim paranteze, valoarea șirului de caractere este trecută și noi căutăm proprietatea 'cat'
– obj
. Astfel, meow
este înregistrată în consolă.
Mai jos, vom încerca să facem același lucru, dar cu notația cu puncte:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof
Din start ar trebui să observați că primim înapoi woof
. Acest lucru este foarte diferit de celălalt exemplu și se datorează faptului că nu putem folosi variabile cu notația punct. Încercarea de a căuta obj.dog
va căuta de fapt doar valoarea șirului de caractere 'dog'
în cadrul obiectului nostru, în loc să folosească valoarea variabilelor. Astfel, obj.dog
returnează woof
.
Recapitulare
Există câteva diferențe importante între notația cu puncte și cea cu paranteze:
Notația cu puncte:
- Identificatorii de proprietate pot fi doar alfanumerici (și
_
și$
) - Identificatorii de proprietate nu pot începe cu un număr.
- Identificatorii de proprietate nu pot conține variabile.
- OK –
obj.prop_1
,obj.prop$
- Nu este OK –
obj.1prop
,obj.prop name
Notația Bracket:
- Identificatorii de proprietate trebuie să fie un șir de caractere sau o variabilă care face referire la un șir de caractere.
- Este în regulă să folosiți variabile, spații și Șiruri care încep cu numere
- OK –
obj
,obj
Mulțumesc pentru lectură! Dacă sunteți gata să învățați în sfârșit Web Development, consultați The Ultimate Guide to Learning Full Stack Web Development în 6 luni, pentru 30 de dolari. Dacă vreți doar să vă îmbunătățiți abilitățile de JavaScript, verificați: A Beginners Guide to Advanced JavaScript
Public 4 articole despre dezvoltarea web în fiecare săptămână. Vă rugăm să luați în considerare introducerea e-mailului dvs. aici dacă doriți să fiți adăugat la lista mea de e-mail o dată pe săptămână, sau urmăriți-mă pe Twitter.
.