Klasse erzeugen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ja, ähnlich wie auch schon vorher der Fall verweist das this hier auf die von dir übergebenen anonymen Funktion selbst und nicht auf die übergeordnete Klasse. Damit es wie gewünscht funktioniert musst du auch hier auf ein that zurückgreifen oder wie von @Lichtjaeger vorgeschlagen auf eine Arrow-Funktion.

    Also entweder:

    JavaScript-Quellcode

    1. var that = this;
    2. setTimeout(function(){that.orderFin(js.buy.contract_id)}, 60000);
    Oder:

    JavaScript-Quellcode

    1. setTimeout(() => this.orderFin(js.buy.contract_id), 60000);
    Grüße,
    NodeCode

    NodeCode.de
  • Vielen Dank, ich hab es mir schon halb gedacht und durch etwas probieren auch rausgefunden. Worüber ich mich gewundert habe war dass ich die that Variable in der Methode die das setTimeout() festlegt nochmal deklarieren musste. ICh hatte sie eigentlich im Klassenkonstruktor schon deklariert aber das hat nicht funktioniert. Ich musste sie nochmals in der Mehode neu deklarieren. Ich dachte immer fie Methoden der Klasse können auf alle im Konstruktor festgelegten Variablen zugreifen. Aber offensichtlich hat die auch nur ihre Gültigkeit im Konstruktor der ja quasi auch nur ein Funktion ist.
  • Genau, der Konstruktor einer Klasse an sich ist nichts weiter als eine Funktion die zur Initialisierung einer Instanz dient, und darin (über var) deklarierte Variablen sind dementsprechend nicht über die einzelnen Methoden der Instanz aufrufbar. Dazu dient das Schlüsselwert this, mit welchem du im Konstruktor instanzspezifische Werte definieren kannst. Wirf einfach mal einen Blick auf diese Referenz, danach sollten alle Unklarheiten beseitigt sein.
    Grüße,
    NodeCode

    NodeCode.de