![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ktoś mi wytłumaczy czemu tak się dzieje i jak to ominąć że gdy mamy jakaś zmienna klasową, globalna i jak przypiszemy do niej jakąś wartość w funkcji callback jakiejś metody to przypisana wartość tej zmiennej nie jest dostępna poza funkcjami callback edit// zauważyłem że pierw wykonuje się fun2, fun i fun3.. dlaczego ? Przykład:
Nie pytajcie się dlaczego użyłem tu tej metody $(document).ready(function().. w oryginalnym przykładzie jest tam pobierane coś za pomocą chrome API (własnie z callback) i chciałbym to przypisać do zmiennej klasowej po czym obrabiać innymi funkcjami Ten post edytował Qss 26.03.2013, 22:41:38 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
To proste: w JavaScript nie ma klas a "this" oznacza nie oznacza kontekstu klasy, tylko kontekst wywołania danej funkcji, a tutaj masz dwie funkcje naraz:
Cytat this.fun = function(){ $(document).ready(function(){ this.test = 1; console.log(this.test); }); } jak masz $(document).ready to najpewniej "this" to będzie document czyli dodajesz zmienną test do zmiennej document, bo to jest bezpośrednim kontekstem. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:06 |