A javascriptben az objektumok más objektumokból és változókból épülhetnek fel.
Az objektumokban tárolhatunk értékeket. Ezeket tulajdonságoknak hívjuk (property)
Az objektumoknak vannak hozzárendelt függvényeik. Ezeket mint más nyelvben is metódusoknak hívjuk.
Objektum létrehozása tulajdonságokkal
Vannak beépített objektumok, de mi magunk is létrehozhatunk objektumokat. Saját objektumok létrehozásakor két lépést kell megtennünk:
Elkészítjük az objektumot létrehozó függvényt - ez az objektumot definiáló függvény kódja (deklaráció)!:
function szemely(nev, szulido, szulhely, anyjaneve, lakik)
{
this.nev = nev;
this.szulido = szulido;
this.szulhely = szulhely;
this.anyjaneve = anyjaneve;
this.lakik = lakik;
}
Az objektumon belül az objektum saját tulajdonságaira a this hivatkozással utalunk.
Így lehet értéket adni egy objektumnak
var auto = { type: "ford", model: "Mondeo", color: "white"};
A fenti objektum deklaráló függvényből a new operátorral hozunk létre példányosított objektumot.
var pista = new szemely("Kiss Pista", "1961.01.01", "Budapest", "Nagy Etelka", "Vigándpetend");
A pista nevű objektum más objektumoknak is lehet bemenő paramétere:
function szamla(szamlaszam,tulajdonos){
this.szamlaszam=szamlaszam
this.tulajdonos=tulajdonos
}
szamlax = new szamla("1111/2017", pista);
Egy objektum egy tulajdonságára az alábbi módon hivatkozhatunk:
document.write(szamlax.szamlaszam);
Az objektumot alkotó objektum tulajdonságaira az alábbi módon:
document.write(szamlax.tulajdonos.nev);
Az objektumok hasonlóan sok más script nyelvhez úgy is reprezentálhatók, mint egy asszociatív tömb, ahol a tömb elemeket stringekkel indexeljük.
document.write(szamlax["tulajdonos"]["nev"]);
Metódusok
Létre kell hoznunk egy függvényt, majd hozzá kell rendelnünk egy létező objektumhoz. Például módosítsuk a fenti objektumunkat egy olyan függvénnyel, amely az összes adatot egy stringbe összefűzve kiirja:
function adatai(){
return this.nev+", "+this.szulido+", "+this.szulhely+", "+this.anyjaneve+", "+this.lakik;
}
function szemely(nev, szulido, szulhely, anyjaneve, lakik)
{
this.nev = nev;
this.szulido = szulido;
this.szulhely = szulhely;
this.anyjaneve = anyjaneve;
this.lakik = lakik;
this.adatai = adatai;
}
A fenti példában meghívva a pista.adatai() metódust visszakapjuk az összes adatot vesszőkkel elválasztva!