[[:oktatas:web:javascript|< JavaScript]]
====== Objektum Orientáltan ES6 ======
* **Szerző:** Sallai András
* Copyright (c) 2021, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== ES6 =====
Az Objektum Orientált programozást az ES6 (ECMAScript 2015)-ban
új szintre emelték. Megjelentek a valódi osztálydefiníciók.
===== Osztály =====
class Dolgozo {
constructor() {
this.nev = 'Nagy János';
this.telepules = 'Szolnok';
this.fizetes = 8500000;
}
}
dolgozo = new Dolgozo();
console.log(dolgozo.nev);
console.log(dolgozo.telepules);
console.log(dolgozo.fizetes)
===== Öröklés =====
class Szemely {
constructor() {
this.nev = 'Nagy János';
this.telepules = 'Szolnok';
}
}
class Dolgozo extends Szemely {
constructor() {
super();
this.fizetes = 8500000;
}
}
dolgozo = new Dolgozo();
console.log(dolgozo.nev);
console.log(dolgozo.telepules);
console.log(dolgozo.fizetes)
A super() hívás kötelező.
===== Konstruktor és függvények =====
class Szemely {
constructor(nev, telepules) {
this.nev = nev;
this.telepules = telepules;
}
}
class Dolgozo extends Szemely {
constructor(nev, telepules, fizetes) {
super();
this.fizetes = fizetes;
}
lekerFizetes() {
return this.fizetes;
}
}
dolgozo = new Dolgozo('Nagy János', 'Szolnok', 8500000);
console.log(dolgozo.lekerFizetes());
===== Privát adattagok =====
class Szemely {
#nev
#telepules
constructor(nev, telepules) {
this.#nev = nev;
this.#telepules = telepules;
}
lekerNev() {
return this.#nev;
}
lekerTelepules() {
return this.#telepules
}
}
mari = new Szemely('Nagy János', 'Szolnok');
console.log(mari.lekerNev());
console.log(mari.lekerTelepules());
===== Kivételek =====
try {
throw new Error('Hiba! valami elromlott');
}catch(e) {
console.log(e);
}
var num: number = -1;
try {
if (num <0)
throw new Error('Hiba! Negatív szám');
}catch(e) {
console.log(e);
}
===== Lásd még =====
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields (2021)
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields (2021)