6.05. Objektumok Javascriptben

Default book

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!