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:
function myClass(){ this.test = null; this.fun = function(){ $(document).ready(function(){ this.test = 1; console.log(this.test); }); } this.fun2 = function(){ console.log(this.test); } this.fun3 = function(){ $(document).ready(function(){ console.log(this.test); }); } } var obj = new myClass(); // tworze nowy obiekt klasy obj.fun(); //odpalam funkcje z funkcja z callbackiem gdzie przypisuje do pola test 1 i oczekuje ze ono tam pozostanie (konsola zwraca 1) obj.fun2(); //ku mojemu zdziwieniu konsola zwraca null obj.fun3(); //przypadek jak w fun i konsola zwraca 1
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