![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czesc
Mam taki problem ze nie wiem jak zrobic żeby funkcja Test poprawnie widziała zmienną thisUser.imie? Czym to moze być spowodowane ze jej nie widzi (wypisuje undefined) ? wiem ze po przeniesieniu jej wywolonia do funkcji anonimowej w request jest ok ale chce miec wywolanie Test w funkcji init po pobraniu informacji o userze. Czy mam ktos pomysł? nie chce tez zmieniać thisUser.imie na zmienną globalną imie chce zeby byla ona częścia obiektu User. Ponizej załączam kod: CODE function User(id){
var thisUser = this; this.UID = id; this.imie = ""; this.nazw = ""; this.login = ""; this.phone = ""; this.email = ""; this.init = function(){ thisUser.getUserInfo(); // thisUser.Test(); } this.getUserInfo = function(){ var url = host + 'getUserInfo/'+thisUser.UID; var wynik; new Ajax.Request(url,{ method:'post', onSuccess: function(e) { wynik = eval('(' + e.responseText + ')'); thisUser.imie = wynik[0].imie; thisUser.nazw = wynik[0].nazw; thisUser.phone = wynik[0].phone; thisUser.email = wynik[0].mail; thisUser.login = wynik[0].login; } }); } this.Test = function(){ alert("LOGIN:"+thisUser.imie); } ... ... ..... } |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie widzi, gdyż zmienną deklarujesz z frazą var, co nadaje jej lokalną "moc". Tzn. jak mam to zapisać w kodzie zeby nie byla? Ale tutaj to wogole z tego co mam to jest ona i tak nadrzędna do podfunkcji w podanej funkcji która jest moją klasą usera więc powinna być zasięgowania do tych funkcji ale nie jest... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Tzn. jak mam to zapisać w kodzie zeby nie byla? Ale tutaj to wogole z tego co mam to jest ona i tak nadrzędna do podfunkcji w podanej funkcji która jest moją klasą usera więc powinna być zasięgowania do tych funkcji ale nie jest... tak... nadrzędna?? - nie dałeś całego kodu a liczysz na odpowiedź(IMG:style_emoticons/default/questionmark.gif) - skopiuj kod - nie trzeba kopiować by widzieć, że domknięcia się nie zgadzają ;p - dałeś fragment flaków i piszesz, że nadrzędna - wyżej dostałeś prawidłową odpowiedź gdyż na to co dałeś jest "podrzędna" - a też mogło by działać gdyby gdzieś był return tego czy coś tam - w sumie nie wiem jak tu tworzysz obiekty - czy przez return czy przez new funkcja... ps. po kiego czorta Ci zmienne prywatne jak widzę, że zajebiście trzymasz się tutaj hermetyzacji ^^ - jeśli wykonujesz coś przez eval to do tego musisz mieć dostęp ze zmiennych globalnych window ^^ (IMG:style_emoticons/default/winksmiley.jpg) ... ogólnie jak pomyslisz to ten link Ci pomoze niżej (IMG:style_emoticons/default/winksmiley.jpg) - a jak nie dajesz całości lub linku do strony to nie licz na większą pomoc od innych (IMG:style_emoticons/default/winksmiley.jpg) [jQuery] Snake, Wężyk z prostą grafą. ps. w tej "podrzędnej" funkcji jeśli nie dasz var przed thisUser to ta zmienna wyląduje w globalnym obiekcie window i wszędzie do niej będziesz miał zasięg (IMG:style_emoticons/default/winksmiley.jpg) - ale wtedy łątwo mozna ją nadpisać ;p Ten post edytował zegarek84 16.02.2010, 23:14:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 14:54 |