Definisanje objekata

OBJEKTI u Java Script jeziku

 

Do sada smo koristili neke od ugradjenih objekata kao što su Array, Date, itd. Videli smo da ti objekti mogu imati ugradjena svojstva i metode. Na primer, svojstvo objekta Array je length i prikazujemo ga kao:

 

var niz = new Array();
niz[0]=’Milan’;
niz[1]=’Dragan’;
niz[2]=’Milica’;
niz[3]=’Zorica’;
alert(niz.length); //daje izlaz 4

 

Takodje, u prethodnom primeru imali smo objekat Date() i koristili njegovu metodu getTime kako bi ga predstavili u milisekundama, lako za poredjenje.

Ako bi morali da definišemo objekat u JavaScriptu onda bi to bilo:

Objekat predstavlja grupu promenljivih i funkcija. Znači, objekat predstavlja skup promenljivih i funkcija koje se mogu vršiti nad promenljivima unutar objekta.

 

Sintaksa kreiranja objekta je sledeća:

var korisnik=new Object;

ili

var korisnik={};

Pored toga što definišemo promenljivu kao tip objekat, tu promenljivu istovremeno mozemo popuniti i svojstvima i metodama.

 

var korisnik = {
ime: ‘Bratimir’,
prezime: ‘Timotijevic’,
godiste: ‘1974’,
mesto_rodjenja: ‘Beograd’,
ispisi: function () {
alert(this.ime + ‘ ‘ + this.prezime + ‘ je rodjen ‘ + this.godiste + ‘-e godine u ‘+this.mesto_rodjenja+’u.’);
}
}
Sada možemo pozvati neka od svojstava kao i funkciju ispisi() na sledeći način:
alert(korisnik.ime);
alert(korisnik.prezime);
ili metodu koja će ispisati sve podatke:
korisnik.ispisi();
Prethodnim kodom kreirali smo objekat koji ima svoje promenljive i funkcije (u ovom slučaju jednu).

Ako bi želeli da jednu funkciju koristi više objekata, napisali bi:
var korisnik1 = {
ime: ‘Bratimir’,
prezime: ‘Timotijevic’,
godiste: ‘1974’,
mesto_rodjenja: ‘Beograd’
}

var korisnik2 = {
ime: ‘Djordje’,
prezime: ‘Mitrovic’,
godiste: ‘1988’,
mesto_rodjenja: ‘Zrenjanin’
}
function ispisi () {
alert(this.ime + ‘ ‘ + this.prezime + ‘ je rodjen ‘ + this.godiste + ‘-e godine u ‘+this.mesto_rodjenja+’u.’);
}
korisnik1.ispisi=ispisi;
korisnik2.ispisi=ispisi;
korisnik1.ispis();
korisnik2.ispis();

 

Ovo treba malo objasniti. Šta smo mi ovde uradili?

Prvo smo definisali dva objekta korisnik1 i korisnik2 sa pridruženim svojstvima. Metod smo izbacili, kreirajući funkciju ispisi koja radi isti posao kao u prethodnom primeru ali nije vezana ni za jedan od objekata.

Dalje imamo kod:

korisnik1.ispisi=ispisi;
korisnik2.ispisi=ispisi;
Ovim kodom smo svakom kreiranom objektu ( u ovom slučaju objektima korisnik1 i korisnik2) definisali metodu ispisi koja će funkciju ispisi pridružiti objektu kao njegovu metodu.

Na kraju smo štampali obe metode u obliku popup prozora.
Dva najvažnija objekta u Java Script jeziku su document i window o kojima će biti reči malo kasnije.

 

PROTOTYPE konstruktor

 

U Java Scriptu ne postoji klasična klasa (poznata onima koji su izučavali OOP nekog drugog jezika). Nešto što na to podseća može se podvesti pod prototip. Prototip se definiše kao prototip funkcija kojom definišemo metode objekta koji kreiramo.
Daćemo jedan primer.

Prvo kreiramo funkciju koja će “izigravati klasu”. U nju smeštamo sva svojstva koja objekti, iz nje nastali, treba da imaju.

function Igrac(svojstvo1, svojstvo2, svojstvo3,…){
this.svojstvo1 = s1;
this.svojstvo2 = s2;
this.svojstvo3 = s3;

}

Zatim, da bi kreirali metode tog objekta, koristimo sledeću sintaksu:
Igrac.prototype.ispis = function(){
// metode objekta Igrac
};

Ovim smo kreirali metodu ispis i ključnom reči prototype je vezali za funkciju Igrac, čime smo simulirali kreiranje klase, tj. omogućili da svi objekti kreirani od objekta Igrac sadrže svojstva i metode te funkcije (objekta u ovom slučaju)

Nakon toga, kreiramo objekte koji će sadržati sva svojstva i metode definisane u prototip funkciji Igrac.
var Dragan = new Igrac(svojstvo1, svojstvo2, svojstvo3,…);
Milan = new Igrac(svojstvo1, svojstvo2, svojstvo3,…);
….
Sada ćemo napisati konkretan primer:

Prvo kreiramo funkciju Ucenici sa svojstvima:

 

function Ucenici(ime, prezime, godiste){
               this.ime = ime;
               this.prezime = prezime;
               this.godiste = godiste;
}
 

Zatim definišemo metodu ključnom reči prototype i povezivanjem sa funkcijom Igrac

 

Ucenici.prototype.ispis = function (){
alert(‘Ime ucenika : ‘ + this.ime + ‘\n\rPrezime ucenika: ‘ + this.prezime + ‘\n\rGodiste: ‘ + this.godiste );}
 

Zatim definišemo dva objekta ‘klase’ Ucenici:

var Milan = new Ucenici(‘Milan’, ‘Petrovic’, 1975);
var Dragan = new Ucenici(‘Dragan’, ‘Stojkovic’, 1975);
 
I na kraju pozivamo metodu ispis na oba objekta:

 

Milan.ispis();
Dragan.ispis();

Preporučite ovaj članak:
Email this to someoneShare on Google+Share on FacebookShare on LinkedIn