– Indkapsling
– Abstraktion
– Arvelighed
– Polymorfisme
Inkapsling
Inkapsling henviser til, at data og metoder samles i en enhed. Dette giver mulighed for genbrugelighed for funktioner mere sikkert. Se f.eks. på koden ovenfor. Egenskaberne er kun synlige for klassens omfang, og funktionerne phoneColor, phoneWeight, phoneBrand, er synlige for den, der kalder funktionen.
Abstraktion
Abstraktion giver os mulighed for at skabe en model ud fra noget mere komplekst. Tænk f.eks. på din telefon, når du går ind på Instagram og liker eller kommenterer et billede. Der foregår en masse kompleksitet og logik i baggrunden, som du ikke er indviet i. Et andet eksempel kunne være en kaffemaskine. Lad os sige, at du bruger en kaffemaskine til at lave kaffe. Der foregår en masse ting inde i maskinen, som du måske ikke ved, at der foregår. Du som bruger er sandsynligvis ligeglad med, hvad der foregår i maskinen. Du vil bare have kaffen. I bund og grund skjuler det unødvendige oplysninger/detaljer og giver os bare det, vi har brug for.
Arv
Arv refererer til, hvordan klasser kan arve metoder eller egenskaber fra andre klasser i en hierarkisk struktur. I OOP er der noget, der hedder en parent class
og en sub class
eller child class
. Den sub class
eller child class
inherits
fra den overordnede klasse. En anden måde vi kan beskrive det på er at sige, at underklassen extends
til parent
klassen.
Polymorfi
Polymorfi betyder mange former. Inden for programmering henviser det specifikt til, hvordan underklasser arver alle egenskaberne fra en overordnet klasse, men kan også have deres egne specifikke egenskaber. Lad os f.eks. tænke på en lærer og eleverne i et klasseværelse. De har mange egenskaber til fælles, f.eks. navn, alder osv. Eleverne kan dog have deres egne egenskaber, som en lærer ikke har, f.eks. karakter.
Slutning
Sammenfattende er OOP et programmeringsparadigme, der er fokuseret omkring objekter. OOP er ikke specifikt for JavaScript, men dette er et eksempel på dets design i JavaScript. Den bedste analogi eller måde at tænke på OOP på er, at det i bund og grund er et blueprint til at skabe objekter. Det kan være med til at gøre vores kode mere DRY (Don’t Repeat Yourself) gennem genanvendeligheden i koden. Du skal ikke være bekymret, hvis du ikke forstod dette koncept første gang. Det gjorde jeg i hvert fald ikke. Jeg har postet et link nede nedenfor for mere information.