Objektumon belül a this élérése eseményre
Jó napot. Volna egy kis segítségre szükségem. Mese helyett kód:Az oké hogy a this értéke a megnyitási környezet miatt olyan amilyen (jelen esetben "document.body") de hogyan lehet kijátszani, illetve megkerülni?
Globális változott (tömböt stb.) kerülném, maradjon csak a objektumon belül. És valóban szeretnék több példány létrehozni az "osztályból" más más értékekkel.
(az Class illetve az osztály megfogalmazásért bocsánat tudom osztály nincs)
Köszönöm előre is a válaszokat.
■
function Class (parameter) {
this.parameter=parameter;
document.body.onclick=function () {
alert(this.parameter); //Itt szeretném visszakapni az "1" illetve a "2" őt
}
}
o1=new Class("1");
o2=new Class("2");
Globális változott (tömböt stb.) kerülném, maradjon csak a objektumon belül. És valóban szeretnék több példány létrehozni az "osztályból" más más értékekkel.
(az Class illetve az osztály megfogalmazásért bocsánat tudom osztály nincs)
Köszönöm előre is a válaszokat.
closure
closure + iteráció
ami nem jó :
üdv Csaba
Nincs egészen megoldva a problámám.
Nem konkrétan toxin nak szól (minden hozzászólnak):
Előszöri a fenti példám valóban csak egy példa volt, mert igazából nem az objektumnak átadott paramétert akarom visszakapni hanem az objektum egy this értéket (konkrétan date de olyan date ami mindegyik objektumban más más értékű).
Másodszor írtam hogy kerülném a globális változókat. Nem lehetne máshogy? Csak így hogy self:this; ? Egyébként így mindig az utolsó példány this értékét kapnám vissza vagy nem?
Módosított példám:
Ustak: Valóban a apply és a call függvényt a ma napig nem értem igazán. Megérteni a példákat megértem (nagyrészt) de írni nem tudnék. Majd utánanézek jobban mert valóban ezt is a rendbe kéne tenni a fejemben. Egyébként nem akarnál róla írni egy cikket? (metaprogramozzás..)
ajánlom figyelmedbe az 1. hozzászólást
sorry.
Viszont toxin második példáját mindig nem értem hogy miért kell oda egy névtelen fg létrehozni? Miért nem megy anélkül?
És ismét nagyon köszönöm az eddigi segítséget.
magyarázat (változók deklarálása)
Ha egy függvényen belül szerepel, hogy var valami akkor egy új változó fog létrejönni. Az eseménykezelő ezt a futási környezetet fogja rökölni benne a valami-vel, ami csak neki szól.
Ha egy ciklusban készíted a beágyazott függvényeket, mind a ciklus futási környzetét fogják örökölni, azaz ugyazat az i-t fogják mind használni.
Hiába nyomod be a cilusba a var-t pl:
az örökölt futási környzetben viszont egy darab [i]seged vagy i szerepel, ezen ostoznak a beágyaott függvények.
Ha egy burkoló fv-t használunk, mindegyik új függvényen belül deklarált var újabb változót eredményez.
(Nagyjából... - Most nem volt kedvem véignézni az ECMA szabványt a megfelelő kifejezésekről stb..)
Azthiszem értem.
dolgoztam :)
üdv Csaba
késő
szebb megoldás
Üdv,
Felhő
rendben...
én is a thisHack-re voksolnék
üdv Csaba
szemléletesség
Bonyolultabbnak meg nem érzem, kb. minden esetben nem egy függvényt írsz be egy helyre, hanem egy formulát. Ez szerintem elég következetes.
Üdv,
Felhő
Thisről...
De!
ha ilyet próbálsz: