Objektorienterad programmering (OOP) bygger på några grundläggande koncept. Här är de viktigaste, med enkla exempel för att visa hur de tillämpas i praktiken:
JavaScript (ES6):
class Hund {
constructor(namn, ålder) {
this.namn = namn;
this.ålder = ålder;
}
}
let minHund = new Hund("Fido", 3);
console.log(minHund.namn); // Fido
JavaScript:
class Konto {
#saldo; // privat variabel (ES2022+)
constructor(saldo) {
this.#saldo = saldo;
}
sättIn(belopp) {
this.#saldo += belopp;
}
hämtaSaldo() {
return this.#saldo;
}
}
let konto = new Konto(100);
konto.sättIn(50);
console.log(konto.hämtaSaldo()); // 150
JavaScript (interface-liknande med abstrakta basklasser): Visa det som är intressant från klassen. Ett sätt att illustrera vår inkapsling.
class Djur {
ljud() {
throw new Error("Måste implementeras i subklass");
}
}
class Hund extends Djur {
ljud() {
return "Voff!";
}
}
let hund = new Hund();
console.log(hund.ljud()); // Voff!
JavaScript: Super - Sub Parent - Child En abstrakt klass är en klass som du inte skall skapa en instans av.
class Djur {
constructor(namn) {
this.namn = namn;
}
info() {
return `Jag heter ${this.namn}`;
}
}
class Hund extends Djur {
ljud() {
return "Voff!";
}
}
let hund = new Hund("Rex");
console.log(hund.info()); // Jag heter Rex
console.log(hund.ljud()); // Voff!
JavaScript:
class Fågel {
ljud() {
return "Kvittra!";
}
}
class Anka extends Fågel {
ljud() {
return "Kvack!";
}
}
class Papegoja extends Fågel {
ljud() {
return "Hallå!";
}
}
let fåglar = [new Anka(), new Papegoja(), new Fågel()];
fåglar.forEach(f => console.log(f.ljud()));
// Kvack!
// Hallå!
// Kvittra!
✅ Sammanfattning: