Hirdetés
- Melyik tápegységet vegyem?
- Épített vízhűtés (nem kompakt) topic
- Mi az optikai internet és hogyan működik?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Kormányok / autós szimulátorok topikja
- Bambu Lab 3D nyomtatók
- Hogy is néznek ki a gépeink?
- AMD Navi Radeon™ RX 9xxx sorozat
- DUNE médialejátszók topicja
- RAM topik
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Jim-Y
veterán
Ezer ilyen van a neten, de ha mar szorakoztam vele egy kicsit, akkor leirom

function Animal(breed) {
this.breed = breed;
}
function Monkey(name) {
Animal.call(this, 'mammal');
this.name = name;
}
Monkey.prototype = new Animal();
Monkey.prototype.constructor = Monkey;
var charlie = new Monkey('Charlie');
console.log(charlie.name, charlie.breed); //"Charlie" "mammal"
console.log(charlie instanceof Animal); // true
console.log(charlie instanceof Monkey); // trueEloszor csinalunk egy Animal constructor function-t (hivjuk osztalynak). Az animal osztaly nem csinal mast, csak letrehozhatunk belole a new kulcsszoval olyan objektumokat amiknek beallithatjuk a breed propertijet valamire.
Utana letrehozunk egy Monkey osztalyt amivel szinten uj objektumokat tudunk gyartani majd, amiknek nevet adhatunk. Mivel elore tudjuk, hogy minden Monkey objektum egyben egy Animal is, vagyis minden majom egy allat, ezert tudjuk, hogy a Majom osztalyt az Allat osztalybol kell majd orokoltetni. Azt is tudjuk, hogy minden majom fajtaja emlos lesz, ezert ezt mixin inheritance-el allitjuk be. Animal.call(this, 'mammal')
Monkey.prototype = new Animal();
Monkey.prototype.constructor = Monkey;A fenti ket sor szolgal arra, hogy egy is-a relaciot tudjunk felallitani a Monkey es az Animal osztaly kozott.
A mixin iheritance es a sima kozott az a kulonbseg, hogy az elobbi esetben lemasoljuk a szulo osztaly mezoit es azokat mint sajatokat hasznaljuk. Elobbi esetben explicit nem masoljuk at a propertiket, hanem referenciaval valo ramutataskor visszakeressuk oket a prototype chainben.
klasszikus eset:
============function Animal(breed) { this.breed = breed; }
function Monkey(name) { this.name = name; }
Monkey.prototype = new Animal('mammal');
Monkey.prototype.constructor = Monkey;
< var george = new Monkey('George');
> undefined
< george.breed
> "mammal"
< george
> Object { name: "George" }Ekkor azt varjuk, hogy a george objektum protipusa a Monkey prototipusara fog mutatni, aminek a prototipusa az Animal prototipusara, aminek a belso prototipusa az Object prototipusara aminek a prototipusa viszont mar nem fog masra mutatni. Ez az ugynevezett prototype chain.
< george.__proto__.__proto__.__proto__ === new Object().__proto__
> trueAz oroklodes itt JavaScriptben ugy mukodik, hogy ha leirsz egy olyat, hogy george.breed akkor eloszor megnezi a runtime, hogy a george objektumban van-e breed nevu mezo, ha van akkor visszaadja az erteket, ha nincs akkor megnezi hogy a george prototipusa mire mutat es ott is elkezd keresni. Egeszen addig visszamegy a prototype chainben amig null-hoz nem er. Ha nem talalja meg, akkor undefined-al ter vissza.
< george.gender
> undefinedUgyanigy mukodik a metoduskra valo "kereses".
< Object.prototype.dummyMethod = function() { return 'dummy'; };
> function Object.prototype.dummyMethod()
< Object.dummyMethod()
> "dummy"
Új hozzászólás Aktív témák
- Melyik tápegységet vegyem?
- Battlefield 6
- Épített vízhűtés (nem kompakt) topic
- Mi az optikai internet és hogyan működik?
- Eltünt hozzászólások
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- exHWSW - Értünk mindenhez IS
- btz: Internet fejlesztés országosan!
- Óra topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- További aktív témák...
- Apple iPhone 14 Pro 512GB, Kártyafüggetlen, 1 Év Garanciàval
- Samsung 970 EVO PLUS NVMe M.2 ssd 1 TB
- Latitude 7420 2-in-1 14" FHD IPS kihajtható érintő i7-1185G7 32GB 512GB NVMe IR kam gar
- Csere-Beszámítás! Lenovo Ideapad Gaming 3 Laptop! I5 12450H / RTX 3050 / 16GB DDR4 / 512+256 SSD
- Pioneer MVH-S420BT - USB MP3 AUX, Android kompatibilis, Pioneer Smart Sync, iPod Direct Control
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- RAPOO 7100P 1000DPI optikai rádiós 5GHz egér
- ASUS VivoBook S16 S3607QA-PL018W
- RTX 5090-es, 5080-as stb... GAMER laptopok + dokkolók + licencek
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Köszönöm a segítséget.



