|
18. 02. 2010. | #1 | |||
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Šta? LOL
Citat:
Jednostavno, izuzetno kratak način da objaviš ugovor (skup funkcija i svojstava). Citat:
Aha, znači treba da ispitujem: 1. da li x može da hoda? 2. da li x može da trči? 3. da li x može da radi x, y i z? 4. da li x ima svojstvo "visina"? .... Nego da pitamo kratko: da li objekt može da se tretira kao "čovek" (gde smo unapred definisali svojstva i funkcije koje "čovek" podržava)? Ako ćeš tako, sve može da se odradi na okolni način, ali možemo i da osnovne računske operacije obavljamo direktno baratajući registrima na procesoru, šta će nam bilo kakva apstrakcija. Citat:
Inače, odgovor sam potražio i našao sam, umesto ovakve besmislene priče sa tobom. Stvar može da se reši drugačije u JavaScript-u, prostim prototype nasleđivanjem, slično kao što se C++ čisto virtuelne klase koriste u zamenu za interfejse. Otprilike ovako: Kôd:
function IDuck() { } IDuck.prototype = { duck : function() {}, walk : function() {} } function Guska() { } Guska.prototype = new IDuck(); var g = new Guska(); alert ( g instanceof IDuck ); // true!
__________________
Commercial-Free !!! Poslednja izmena od degojs : 18. 02. 2010. u 19:53. |
|||
18. 02. 2010. | #2 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
U stvari, nije baš tako jednostavno kao ovo gore, jer to opet ne garantuje da objekat zaista ima vlastitu implementaciju definisanih metoda. Oh, well.. mene mrzi dalje da tražim
__________________
Commercial-Free !!! |
18. 02. 2010. | #3 | ||
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Citat:
Taj "ugovor" o kome pričaš zapravo nema veze sa koderom. U pitanju je ugovor sa kompajlerom, tj. jedini način da ti kompajler dozvoli da pozivaš iste metode na objektima različitih klasa. Drugim rečima, pisanje interfejsa je tvoja obaveza, a ne privilegija. Mislim, ja kapiram da ti to znaš, pišem ovo zbog omladine koja ovo čita... Citat:
Kôd:
# unapred definišemo svojstva i funkcije: sve_sto_covek_mora_da_podrzava = [:hodaj, :trci, :x, :y, :z, :visina] # pa pitamo kratko objekat_pera.podrzava? sve_sto_covek_mora_da_podrzava |
||
18. 02. 2010. | #4 | |||
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Citat:
Citat:
Citat:
Kako rekoh, već sam sam pronašao odgovor koristeći prototype nasleđivanje po uzoru otprilike na pomenute virtuelne metode/klase iz C++, a ispitivanje sa instanceof. I evo upravo sam ga i naterao da proradi (čini mi se ), negde u prethodnom primeru je bio typo ili tako nešto.
__________________
Commercial-Free !!! Poslednja izmena od degojs : 18. 02. 2010. u 20:59. |
|||
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Izbor mobilnog operatera? | 3banchi | Komunikacije | 36 | 21. 10. 2010. 09:39 |
Izbor tehnologije za velike Web aplikacije | toxonics | Programiranje | 75 | 16. 01. 2006. 15:34 |
Izbor internet provajdera je bitan :) | BluesRocker | Opušteno | 2 | 19. 09. 2005. 13:48 |