Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prototype Chaininga

[es] :: Javascript i AJAX :: Prototype Chaininga

[ Pregleda: 1919 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Prototype Chaininga29.03.2013. u 17:45 - pre 134 meseci
Imam sljedeci kod:

Code:

//Main object 
        function Pet(name, species, hello) {
            this.name = name;
            this.species = species;
            this.hello = hello;
        }

Pet.prototype = {
            sayHello: function () {
                alert(this.hello + " hello from normal pet");
            }
        }


//Cat prototype
        function Cat(name, hello, breed, whiskerLength) {
            Pet.call(this, name, "cat", hello);
            this.breed = breed;
            this.whiskerLength = whiskerLength;
        }

        Cat.prototype = new Pet();
        Cat.prototype.catNap = function () {
            alert(this.name + ": zzzzz...");
        }

        Cat.prototype.sayHello = function () { //just an overide of Pets sayHello
            alert(this.hello + " hello from a cat..");
        }






Zanima me objasnjenje sta radi ovaj dio koda:

Code:

Pet.call(this, name, "cat", hello);


Koliko sam shvatio, kaze da pri kreiranju prototype, da koristi od Base objekta navedene properije. U ovom slucaju Base objekt je Pet. Dakle koristi name i hello koji su definisani u Pet-u????

Sta predstavlja "cat" u istom kodu?


 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Prototype Chaininga29.03.2013. u 18:04 - pre 134 meseci
1. To ti je nešto kao poziv nasleđenog konstruktora.
2. Jeste, koristi "propertije" koji su definisani u Pet-u, tj. "nasleđuje" ih.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.rs.



+33 Profil

icon Re: Prototype Chaininga30.03.2013. u 10:35 - pre 134 meseci
call omogućava da pozoveš funkciju u kontekstu nekog drugog objekta. U tom primeru, kad pozoveš Pet.call(), prosleđujući mu Cat instancu, this u funkciji (konstruktoru) Pet će se odnositi upravo na tu Cat instancu, pa ćeš praktično menjati property-je tog objekta.

A što se tiče tog "cat", ta vrednost će biti prosleđena kao drugi argument Pet kontruktoru (species parametar).

U primeru kojeg si post-ovao, Pet bi bila neka apstraktna klasa, dok bi Cat i npr. Dog bile njene konkretne implementacije. One bi u slučaju tog species property-je imale te neke default-ne, fikse vrednosti, "cat", "dog", itd.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Prototype Chaininga

[ Pregleda: 1919 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.