Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]JS Obiect po inicjalizacji
sasiadstar
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

Ostrzeżenie: (0%)
-----


Witam
Ponieważ dopiero uczę się obiektów w JS napotkałem problem.
[JAVASCRIPT] pobierz, plaintext
  1. var jb_Object2=function(JQuery) {
  2. var x="";
  3. init=0;
  4. ////////////////////////////////////////
  5. show_=function(){
  6. console.log(x);
  7. // jezeli init =1 (done) to wyświetl show_ albo jakoś tak
  8.  
  9. }
  10.  
  11.  
  12. loadData=function(){
  13. var deferred = $.Deferred();
  14.  
  15. setTimeout(function(){
  16.  
  17. x='OK';
  18. init=1;
  19. //Object.prototype.show=function(data){return show_()}; to takie moje zamysły
  20. deferred.resolve();
  21. }, 3000)
  22. return deferred.promise();
  23.  
  24. } ;//end Ajax
  25.  
  26. //////////init///////////
  27. initApp=function(){
  28.  
  29. var pomise_= loadData();
  30.  
  31. pomise_.done(function(data){
  32.  
  33. console.log('promise done');
  34. return true;
  35. })
  36.  
  37. }
  38. ////////////////////////////
  39. return{
  40. init:initApp,
  41. show:show_
  42. }
  43. ///////////////////////////
  44. }//end object
  45.  
  46. var smog=new jb_Object2();
  47.  
  48. smog.init();
  49. smmog.show()//Wielkie nic
[JAVASCRIPT] pobierz, plaintext

Czemu nic nie pokazuje to wiem ale nie wiem jak zrobić żeby metoda wywołala się dopiero po inicjalizacji obiektu.
Myślałem nad dodaniem metody w momencie kończenia funkcji init() ale wtedy show() wywali błąd.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Masz wielkie nic bo w tym obrębie nie masz dostępnej zmiennej x... zrób sobie console.log(1); to zobaczysz
Go to the top of the page
+Quote Post
sasiadstar
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

Ostrzeżenie: (0%)
-----


Cytat(rad11 @ 8.02.2018, 09:11:29 ) *
Masz wielkie nic bo w tym obrębie nie masz dostępnej zmiennej x... zrób sobie console.log(1); to zobaczysz

Mam dostępną ale przypisane do niej jest''
Jak uruchomię smog.init()
poczekam na console.log->promise done
wtedy do zmiennej x zostanie podstawione OK
i metoda show() wyświetli OK
Chodzi mi własnie o to żeby metoda show()czekała na zakończenie init i dopiero się wywołała

Cytat(rad11 @ 8.02.2018, 09:11:29 ) *
Masz wielkie nic bo w tym obrębie nie masz dostępnej zmiennej x... zrób sobie console.log(1); to zobaczysz


Wszystko działa jak powinno przy wywolaniu show_() zwraca "" bo tak jest zainicjowana zmienna.
Jak zrobie init() i poczekam na console.log ->promise done
to ponownym wywolaniu show_ otrzymam OK

I chodzi mi właśnie o to żeby ta funkcja"czekała" aż init zrobi swoje i dopiero wtedy się wywołała.
Pewnie potrzebne do tego promise ale kompletnie nie iem jak to zastosować
Go to the top of the page
+Quote Post
Toshikatsu
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 3
Dołączył: 18.10.2017

Ostrzeżenie: (0%)
-----


Może to błąd przy kopiowaniu, ale czy masz tam

smmog.show()//Wielkie nic
?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 22:28