JavaScript objekti

Objekat je kombinacija promenljivih i funkcija. Zamislite da postoji promenljiva koja u sebi sadrži potpromenljive, a kao dodatak i funkcije. Jedna od najvažnijih mogućnosti programiranja sa objektima je što i te "potpromenljive" takođe mogu da budu objekti. Suštinski, objekat je jedna "budža" podataka i programa koji rade sa tim podacima.

Promenljive koje pripadaju objektu nazivaju se svojstva (properties), a funkcije objekta nazivaju se metodi (methods).

U JavaScriptu se može programirati objektno-orijentisano, makar u najvažnijim aspektima, ali time ćemo se baviti u posebnom odeljku. Trenutno nas zanima kako da koristimo već gotove objekte. JavaScript ima neke već ugrađene objekte, a u web programiranju, elementima stranice pristupamo preko objekata koje nam obezbeđuje web čitač.

Bilo kom elementu objekta se pristupa tako što navedmo objekat i onda svojstvo ili metod, odvojen tačkom. Svojstvo objekta se koristi kao i bilo koja druga promenljiva.

objekat.svojstvo = vrednost;

Metode objekta koristimo kao i bilo koje druge funkcije.

objekat.metod();

Primer

Svaka string promenljiva (znači promenljiva koja sadrži tekst), takođe se može koristiti i kao string objekat.


  var tekst = "JavaScript ima objekte";
  
  var x = tekst.length;               // duzina stringa
  var promena = tekst.toUpperCase();  // string pretvoren u velika slova
  
  window.alert("Duzina stringa je " + x);
  console.log(promena);
  
  alert("Window je toliko vazan da cak i ne mora da se navede.");
		

U ovom primeru smo pozvali svojstvo length koje sadrži dužinu stringa (u karakterima), i metod toUpperCase(), koji na osnovu početnog stringa kreira novi string ali sa svim velikim slovima.

U primerima često prikazujemo rezultate pozivajući metod log() objekta console. Takođe koristimo i alert(), metod koji pripada objektu window. Objekti console i window ne pripadaju JavaScriptu, već DOM-u (Document Object Model), tj. predstavljaju objekte koje web čitač "pruža" JavaScriptu.

Inače, objekat window je toliko značajan (predstavlja sam web čitač), da čak ne moramo ni da ga navedemo kako bismo koristili njegove metode i svojstva.

Podobjekti

Jedan od glavnih koncepata objektnog programiranja je kompozicija. To je u stvari mogućnost da objekat sadrži svojstva koja su takođe objekti. Ovakva svojstva efektivno predstavljaju podobjekte nekog objekta.

objekat.podobjekat.svojstvo objekat.podobjekat.metod()

Primer korišćenja podobjekta

Svaki HTML element poseduje poseban podobjekat style koji u sebi sadrži veliki broj svojstava vezanih za CSS prikaz tog elementa.


  var pasus = document.getElementById("prvi");  // negde u HTML-u postoji <p id="prvi">...
  
  pasus.style.color = "#900";       // postavljamo boju teksta
  pasus.style.borderWidth = "1px";  // postavljamo debljinu okvira
		

Najpre smo "pozvali" element iz HTML koda, pomoću metoda getElementById() objekta document (ovaj objekat je u stvari podobjekat objekta window i predstavlja samu HTML stranicu). Ovaj elemenat može biti bilo koji (ne mora da znači da je pasus), pozivamo ga prema parametru id.

Na taj način smo "vezali" HTML elemenat sa promenljivom pasus, koja u stvari sada predstavlja referencu na objekat. Preko te reference lako pristupamo svojstima i metodima objekta.

U ovom slučaju, koristimo svojstvo style koje je u stvari podobjekat HTML elementa i koji sadrži veliki broj svaojstava koja odgovaraju CSS atributima. Na ovaj način menjamo CSS formatiranje elementa direktno iz JavaScripta.

Refernca na podobjekat

Verovatno se pitate da li je moguće "izvući" i podobjekat nekog objekta u referencu (promenljivu). Naravno da je moguće - pogledajte isti primer od malopre, ali kada napravimo referencu na sam podobjekat style.


  var stil = document.getElementById("prvi").style;  // podobjekat style HTML elementa "prvi"
  
  stil.color = "#900";       // boja teksta
  stil.borderWidth = "1px";  // debljina okvira
		

Dakle, prvo "izvlačimo" HTML elemenat sa id parametrom "prvi", i onda iz njega pozivamo svojstvo (podobjekat) style, koji onda adresira referenca (promenljiva) stil. Kada radimo sa objektima pogrečno je reći "smeštamo objekat u promenljivu", pošto takva promenljiva postaje referenca, a referenca samo pokazuje na objekat koji se nalazi "tamo negde".

Posle toga normalno koristimo svojstva objekta.

Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.