Sten: "this" in setInterval?

Ich habe hier folgendes Problem:
Ich möchte innerhalb einer Objekt-Methode die "setInterval" Funktion benutzen. Die von "setInterval" aufgerufene Methode befindet sich im selben Objekt und ruft selbst Klassen-Variablen auf. Nun scheint aber "setInterval" den this-Pointer nicht zu kennen oder ist selbst ein Objekt und würde somit auf sich selbst verweisen. Ich habe bisher dieses Problem gelöst in dem ich eine Instanz von dem Objekt angelegt habe und anstatt "this" die Methoden und Variablen mit dem Instanznamen angesprochen habe. Es klappt zwar, aber dadurch kann diese Objekt immer nur mit einen und den selben Instanznamen angelegt werden. Also man kann dieses Objekt nur einmal anlegen. Gibt es die Möglichkeit "this" durch den Aufruf eines höheren Objektes zu ersetzen, kann ich Instanznamen Objekt-intern abfragen, weiß da jemand was?

Danke

Sten

  1. Hello,

    das verstehe ich jetzt nicht.
    setInterval() will doch sowieso nur einen Befehlsstring haben, der dann während der Laufzeit erst evaluiert wird. Den könnte man auch aus einem Arrayelement herausholen, das man dynamisch anlegt.

    Wenn es da ist, wird es eben benutzt.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Ich glaub ich mein was anderes. In JavaScript weiss das Objekt nicht wie es heist, also wenn ich ein Object anlege wie: "du = new ich();"
      weis "du" nicht das es "du" heist. Das ist auch eigentlich nicht nötig, da auf sich selbst bezogene Methoden und Eigenschaften mit "this." angesprochen werden, normalerweise. Bei der "setInterval" Funktion klapt das eben micht, ich muss das Objekt von aussen mit den eigenen Instanznamen ansprechen und da liegt das Problem, woher diesen Namen nehmen wenn ihn nur der Programmierer sieht/kennt?
      Diese Problem soll das Objekt von innenheraus selbst lösen, ohne Hilfe von aussen, ein Array wäre auch nur ein künstlicher Eingriff von aussen.

      Sten

      1. gruss Sten,

        Diese Problem soll das Objekt von innenheraus selbst lösen, ohne
        Hilfe von aussen, ein Array wäre auch nur ein künstlicher Eingriff
        von aussen.

        http://suche.de.selfhtml.org/cgi-bin/such.pl?suchausdruck=selfreference&lang=on&feld=alle&index_5=on&index_6=on&hits=100

        by(t)e by(t)e - peterS. - pseliger@gmx.net

        --
        ie:( fl:) br:> va:| ls:& rl:| n4:} ss:} de:µ js:} zu:]
        1. Aahh,
          also doch, ich dachte ich hätte mit meinem Problem das Ende der Fahnenstange "JavaScript" erreicht.
          Ich ahnte schon, dass es noch eine art Grundgerüst gibt mit dem man rumspielen kann.
          Hab dein Posting schon kopiert.

          Danke

          Sten

  2. Du könntest beim objectinitialisieren eine Membervariable mit dem Namen des Objects mit initialisieren.

    also

    function my_obj (__name) {
     this.name = __name;
     this.whatsmyname = whatsmyname;
    }

    function whatsmyname () {
    this.setTimeout(this.name+".whatsmyname()",1000);
    }

    meintest = new my_obj("meintest");
    meintest.whatsmyname();

    1. Die Idee hatte ich auch schon. Die "Klasse" soll auch für andere User anwendbar sein, mir war da die Möglichkeit des Tippfehlers zu gross und die Lösung ist auch nicht ganz OOP konform.
      Trotzdem Danke,

      Sten