[[oktatas:web:javascript|< JavaScript]]
====== JavaScript Objektum Orientáltan ======
* **Szerző:** Sallai András
* Copyright (c) 2014, Sallai András
* Szerkesztve: 2014, 2022, 2023
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Objektum létrehozása =====
A JavaScriptben tulajdonképpen minden objektum.
Saját objektumot az Object konstruktorral hozhatunk létre, vagy
egyszerű literális jelöléssel.
==== new operátor ====
let szemely = new Object();
szemely.vNev="Nagy";
szemely.kNev="József";
szemely.kor=50;
szemely.szemSzin="kék";
==== Literális jelölés ====
let Dolgozo = {
nev : 'Nagy József',
kor : 32,
udvozlet : function(){
console.info("Üdv", this.nev);
},
lekerKor : function(){
console.info(this.kor);
}
};
Dolgozo.udvozlet();
Dolgozo.lekerKor();
===== Osztály =====
A JavaScript, alapvetően egy osztályok nélküli nyelv volt 2015-ig. Azonban függvényekkel addig is szimulálhatók voltak az osztályok:
function Jarmu(model) {
this.model = model;
this.szin = 'piros';
this.evjarat = '2008';
this.getInfo = function() {
return this.model + ' ' + this.evjarat
}
}
Példányosítás:
let kocsim = new Jarmu('opel');
kocsim.evjarat = '2009';
console.log(kocsim.getInfo());
===== Konstruktor =====
var Dolgozo = function(nev, kor){
this.nev = nev;
this.kor = kor;
};
var joska = new Dolgozo("Nagy József", 38);
document.getElementsByTagName("body")[0].innerHTML = joska.nev;
===== Konstruktor és metódus =====
var Dolgozo = function(nev, kor){
this.nev = nev;
this.kor = kor;
this.info = function(){
return this.nev + ":" + this.kor;
}
};
var joska = new Dolgozo("Nagy József", 38);
document.getElementsByTagName("body")[0].innerHTML = joska.info();
===== Kivételkezelés =====
try {
sessionStorage.setItem("user", "joska");
}catch(e){
console.log("Hiba a tárolás során");
}
==== Összetett ====
function checkSides(a, b, c) {
if (a<1 || b<1 || c<1) {
throw 'Hiba! Paraméter nem megfelelő!';
}
}
function tryCalcPerimeter(a, b, c) {
return a+b+c;
}
function calcPerimater(a, b, c) {
try {
checkSides(a, b, c);
return tryCalcPerimeter(a, b, c);
}catch(e) {
console.error(e);
}
}
console.log(calcPerimater(30, 35, -40));
===== Object.create() =====
const dolgozo = {
ember: false,
kiir: function() {
console.log(`A név: ${this.name}`);
}
};
const janos = Object.create(dolgozo);
janos.name = 'Nagy János';
janos.ember = true;
janos.kiir();
===== Object.keys() =====
const pali = {
name: 'Török Pál',
age: 30,
city: 'Szeged'
}
const paliKeys = Object.keys(pali)
paliKeys.forEach( key => {
console.log(key)
})
===== Linkek =====
* http://www.javascriptkit.com/javatutors/oopjs.shtml
* http://net.tutsplus.com/tutorials/javascript-ajax/the-basics-of-object-oriented-javascript/
* http://www.codeproject.com/Articles/5608/Writing-Object-Oriented-JavaScript-Part-1
* http://weblabor.hu/cikkek/oojsafelszinalatt
* http://www.sitepoint.com/oriented-programming-1/