Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 3.030 pregleda

Najnovija ↓

Prototype Chaininga 29.03.2013. u 18:45 · pre 165 meseci #1
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?

Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: Prototype Chaininga 29.03.2013. u 19:04 · pre 165 meseci #2
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.
Re: Prototype Chaininga 30.03.2013. u 11:35 · pre 165 meseci #3
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme