- D1Rect: Nagy "hülyétkapokazapróktól" topik
- hcl: Kelj fel komám, ne aludjál
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- 04ahgy: A múlt, a jelen, a jövő.
- A lány, aki átformálta az életem 2
- GoodSpeed: AOMEI Backupper Professional Edition: Lifetime Subscription
- kreténtehén: Gazdit keresünk
-
LOGOUT
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
- Külföldi rendelések: boltok, fizetés, postázás
- Kerékpárosok, bringások ide!
- Filmvilág
- Nyíregyháza és környéke adok-veszek-beszélgetek
- Akciófigyelő: Megnyílt a Xiaomi hivatalos magyar webáruháza
- Formula-1
- alza vélemények - tapasztalatok
- Villanyszerelés
- Milyen routert?
- Google Pixel topik
- További aktív témák...
- Samsung Galaxy Tab S8 ( SM-T706B ) 11" Wifi +CELLULAR 5G tablet + S Pen, Üzletből, garancia ,27%ÁFÁS
- iPhone 15 Pro, fekete, 256GB
- EMESE! 16napot futott! MacBook Pro 16 i7-9750H 16GB RAM 512GB SSD RX 5300M 1 év garancia
- Honor 90 512GB, Kártyafüggetlen, 1 Év Garanciával
- ThinkPad T495 Ryzen 3 PRO 3300U 16GB 1000GB 1 év garancia (akksi hibás)
- Samsung Galaxy Tab S8 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone XR 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3200, 100% Akkumulátor
- Lenovo 14 Ideapad 3 FHD LED Matt i3-1115G4 4.1Ghz 8GB 256GB SSD Intel UHD Graphics Win11 Garancia
- Fujitsu LIFEBOOK E449 i5-8250U 12GB 512GB 14" FHD 1 év garancia
- Csere-Beszámítás! Garancia! Steam Deck LCD 512GB + 256GB Ajándék Micro SD Kártya!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest