Toegang tot eigenschappen van een object
Er zijn twee manieren om eigenschappen van een object te benaderen:
- Dot Notatie
- Bracket Notatie
Dot notatie wordt het vaakst gebruikt. Hieronder zullen we in beide duiken en enkele van de verschillen ontdekken.
Stip notatie
Laten we eerst eens kijken naar Stip notatie. Kijk eens naar het onderstaande voorbeeld:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow
Ik wil uw aandacht vestigen op de vijfde regel waar we puntnotatie gebruiken: let sound = obj.cat;
. Dit is een voorbeeld van puntnotatie. Je kan eigenschappen van een object oproepen door de naam van het object op te geven, gevolgd door een punt (punt) gevolgd door de naam van de eigenschap. Dit is de syntaxis: objectName.propertyName;
.
Wanneer u met puntnotatie werkt, kunnen eigenschap-aanduidingen alleen alfanumeriek zijn (en
_
en$
). Eigenschappen kunnen niet beginnen met een getal.
Stipnotatie is veel gemakkelijker te lezen dan haakjesnotatie en wordt daarom vaker gebruikt. Er is echter een tweede manier om eigenschappen van een object te benaderen die je zou moeten kennen. Het heet bracket notation.
Bracket Notation
Hier volgt een voorbeeld van bracket notation:
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow
Let nogmaals op de vijfde regel: let sound = obj;
. U kunt eigenschappen van een object oproepen door de naam van het object op te geven gevolgd door de naam van de eigenschap tussen haakjes. Hier is de syntaxis: objectName
.
Je hebt de haakjesnotatie waarschijnlijk al gezien bij het werken met Arrays. In het onderstaande voorbeeld zullen we het tweede element in onze arr
benaderen door gebruik te maken van de syntaxis: arrayName
let arr = ;let letter = arr;console.log(letter);
// b
Maar haakjesnotatie is ook handig bij het werken met Objecten.
Wanneer we werken met haakjesnotatie, hoeven property-identifiers alleen een String te zijn. Ze kunnen alle tekens bevatten, inclusief spaties. Variabelen mogen ook worden gebruikt, zolang de variabele maar een tekenreeks is.
Dit betekent dat er minder beperkingen zijn bij het werken met haakjesnotatie. We kunnen nu spaties in onze strings hebben, en we kunnen strings zelfs met getallen beginnen.
Het belangrijkste is misschien wel dat we nu variabelen kunnen gebruiken om toegang te krijgen tot eigenschappen in een object. Het is belangrijk dat de variabele die je gebruikt verwijst naar een String.
Kijk eens naar dit variabele voorbeeld. Het kan in het begin een beetje verwarrend zijn, dus heb geduld met me:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow
Het bovenstaande voorbeeld is vergelijkbaar met een eerder voorbeeld dat we al hebben gezien. Het belangrijkste verschil is dat we nu haakjes gebruiken om een variabele in te voeren. Wees voorzichtig, het lijkt misschien alsof we zoeken naar de dog
eigenschap in onze obj
, maar dat is niet helemaal juist. dog
is een variabele met een waarde van 'cat'
. Omdat we haakjes gebruiken, wordt de stringwaarde doorgegeven en zoeken we naar de 'cat'
eigenschap – obj
. Dus, meow
wordt gelogd naar de console.
Hieronder, zullen we proberen hetzelfde te doen, maar met punt notatie:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof
Meteen zou je moeten opmerken dat we woof
terugkrijgen. Dit is heel anders dan in het andere voorbeeld en dat komt omdat we variabelen niet kunnen gebruiken met puntnotatie. Als we obj.dog
proberen op te zoeken, zoeken we naar de string-waarde van 'dog'
in ons object, in plaats van de waarde van de variabelen te gebruiken. Dus, obj.dog
retourneert woof
.
Recap
Er zijn enkele belangrijke verschillen tussen punt- en haakjesnotatie:
Streepjesnotatie:
- Eigenschap-aanduidingen kunnen alleen alfanumeriek zijn (en
_
en$
) - Eigenschap-aanduidingen kunnen niet beginnen met een getal.
- Eigenschap-identifiers kunnen geen variabelen bevatten.
- OK –
obj.prop_1
,obj.prop$
- Niet OK –
obj.1prop
,obj.prop name
Bracket notatie:
- Eigenschap-identifiers moeten een String zijn of een variabele die verwijst naar een String.
- Het is OK om variabelen, spaties, en Strings te gebruiken die beginnen met getallen
- OK –
obj
,obj
Dank voor het lezen! Als je er klaar voor bent om eindelijk Web Development te leren, bekijk dan The Ultimate Guide to Learning Full Stack Web Development in 6 maanden, voor $30. Als je gewoon op zoek bent om je JavaScript vaardigheden te verbeteren, bekijk dan: A Beginners Guide to Advanced JavaScript
Ik publiceer elke week 4 artikelen over webontwikkeling. Overweeg hier je e-mail adres in te vullen als je toegevoegd wilt worden aan mijn wekelijkse e-mail lijst, of volg me op Twitter.