Monday, March 2, 2015

Objektid ja meetodid Javascriptis

Codecombati mängu mängides puutusid kokku sellega, et tegelase liigutamiseks pidid kasutama süntaksit this.moveRight(); või this.attack(enemy); selles mängus on tegelased kirjeldatud objektidena ning neile saab mängu käigus lisada uusi omadusi ja funktsioone.

Objekte kasutataksegi Javascriptis selleks, et andmeid organiseerida. Objektiks sisuks olevad omadused võivad muutuda (nii nagu mängus saab tegelane järjest tugevamaks). 

Objekti defineerimisel on üheks võimaluseks panna objekti omadused loogeliste sulgude vahele

var objektinimi = {};

var mina = {
  nimi: "Minu Nimi",
  vanus: 10
};

Teine võimalus on kõigepealt defineerida tühi objekt (new Object();) ja siis täida see sisuga.

var mina = new Object();
mina.nimi = "Minu Nimi";
mina.vanus = 10;


Meetodid

Meetodid on objektiga seotud funktsioonid. Neid saab kasutada objekti omaduste väärtuste muutmiseks (näiteks uus vanus) ja objekti omaduste põhjal arvutuste tegemiseks.

Meetod muudab ära kasutaja vanuse:
mina.muudaVanus = function (uusVanus){
  mina.vanus = uusVanus;
};
Meetod arvutab vanuse järgi inimese sünniaasta:
mina.leiaSynniAasta = function () {
  return 2014 - mina.vanus;
};
console.log(mina.leiaSynniAasta());

Võtmesõna this 
toimib kohatäitjana ja viitab meetodi kasutamisel meetodi välja kutsunud objektile.