Elképzelhető hogy eseménykezelővel nem lehet tömbben tárolt javascript objektumreferenciára hivatkozni, vagy csak én vagyok béna?
Például
script
var tomb = new Array();
tomb['ertek'] = new objektum('ertek');
html
onclick="javascript:tomb[this.name].fuggveny(this.name)"
már nem emlékszem hogy milyen hibaüzenetet írt ki, de ha azt mondjátok hogy ilyet lehet, akkor megkeresem hogy mi volt a hiba... :D
(bár már elég sok mindent kipróbáltam)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Az sosem gond, azért van ez az oldal. :)
A "privát" adatokat belsőbb scope -ból ugyanúgy lokális változóként éred el (ha csak felül nem deklaráltad), a "globális" adattagokat, illetve metódusokat pedig a "this" kulcsszóval. Csakhogy az, hogy a "this" mire mutat, az függvényenként és kontextenként más, ezért kell workaroundként létrehozni a "self" -et.
Röviden, tömören:
A "this" egy adott objektumra mutat, ha
- Konstruktorként lett meghívva
- Egy már létező objektum "public" metódusa (és nem lett átbindolva)
A "this" a window objektumra mutat, ha
- A függvény nem konstruktorként hívódott
- ÉS a függvény egy "private" metódus vagy nincs explicit gazdaobjektuma
basszus, úgy tűnik hogy a self-es megoldással működik... :o
egyébként a probléma az volt, hogy van egy ajaxos meghívásom,
pl mint ez:
aminek az aszinkronitás (vagy szinkronitás :) miatt nem tudok beállítani visszatérési értéket, és mivel egy ajaxos függvényt akarok használni konkrétan mindenhez, ezért azt találtam ki hogy
if (xmlhttp.readyState==4 && xmlhttp.status==200){}
-en belül egy paraméterrel átadott eljárást hívok meg. Ez a korábbi tapasztalatok alapján csak objektumként ment nekem. Na de nekem több form-om van egy oldalon, és valahogy meg kell egymástól különböztetnem őket, és úgy szerettem volna hogy a formok mint objektumok magukban tárolják a tábla feltöltéshez szükséges függvényeket, a függvényeken belül meg paraméterként meg volt adva hogy
this.következöeljaras
ami működött, de a következő eljáráson belül kellett volna megint a this.újabbeljaras, de azt már nem bírta, csak akkor, ha közvetlenül hívom meg mondjuk formok["valami"].újabbeljaras. Na de most kipróbáltam self-el, és úgy bizony működik... :)
Köszönöm a segítséget!
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!