Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]rekurencja + OOP
marcus753
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

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


mam sobie metodę w obiekcie np :

  1. this.animation_0 = function(var1,var2){
  2. {
  3.  
  4. do_something...
  5.  
  6. var this_parent = this;
  7. if(!animacja_zakonczona) setTimeout(function(this_parent){alert(this_parent);this_parent.animation_0var1,var2)},timeout);
  8. }


w miejscu (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) funkcja musi wywołać samą siebie (animation_0) i przekazać 2 zmienne var1 var2 - jak to zrobić ?

alert(this_parent) zwraca undefined... ;(

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. function Klasa() {
  2. this.animation_0=function(var1, var2) {
  3. setTimeout(function () {
  4. alert(this);
  5. }.bind(this), 100);
  6. }
  7. };
  8. var abc=new Klasa();
  9. abc.animation_0(1, 2);
Go to the top of the page
+Quote Post
Tuminure
post
Post #3





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

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


[JAVASCRIPT] pobierz, plaintext
  1. var self = this
[JAVASCRIPT] pobierz, plaintext


http://jsfiddle.net/nwe3ro6u/

Funkcja wyświetla co sekundę kolejnego inta. Takie wykorzystanie to oczywiście przerost formy nad treścią, jednak wydaje mi się, że dobrze obrazuje sposób użycia.
Go to the top of the page
+Quote Post
owca_82
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


Do setTimeout można przekazywać parametry jako 3 -ci argument wywołania -> http://jsfiddle.net/fpr5hyy7/
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: 4.10.2025 - 03:50