setTimeout in Objekten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    so, zunächst mal etwas, das wirklich funktioniert. lösung gab's gestern abend schon (danke an php-desaster), aber ich war zu blind .
    PHP-Code:
    function bla()
    {
      
    this.jodelbla = function ()
      {
        
    blubb();
      }
      function 
    blubb()
      {    
        
    window.setTimeout(blubber1000);
      }
      function 
    blubber()
      {
        
    alert ('hallo');
      }
    }  

    window.onload = function ()
    {
      var 
    laber = new bla();  
      
    laber.jodelbla();  

    ansonsten funktioniert kaum eine der geposteten lösungen. werde mich da mal tiefer einarbeiten müssen.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #17
      Die Methode im aktuellen Scope laufen zu lassen ist auch kein Geheimnis:
      PHP-Code:
      function bla() {
        
      // Kontextobjekt in lokale Variable speichern
        
      var self=this;
        
      this.blubb=function(){
          
      window.setTimeout(function() {
              
      // Mit call kann scope festgelegt werden.
              // Optional hier auch weitere Argumente üblich
              
      blubber.call(self);
          }, 
      2000);
        }
        function 
      blubber(){
          
      alert('blubber');
        }


      JavaScript ist einfach nur abartig.
      Mit PHP 5.3 bzw. 6 gibt es anonyme Funktionen auch in PHP, allerdings bin ich mir nicht sicher, ob die Erbung vom Scope wie im RFC beschrieben läuft.

      Kommentar


      • #18
        Also ich würde jmc's Ansatz weiter verfolgen ... oder eben prototype's function.bind() verwenden.
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar

        Lädt...
        X