NEWS
[Gelöst] TypeScript: Klassenvariable innerhalb Callbacks
-
Habe eine Frage zu TypeScript. In einem auf die schnelle zusammenkopierten Beispiel, welches inhaltlich keinen Sinn macht wollte ich fragen, was ich tun muss, dass ich innerhalb eines Callbacks auf die Klassenvariablen zugreifen kann?
Die 2.) Log-Zeile kann nicht auf den Wert this.firstName zugreifen, bzw. er ist immer undefined.
Die 1.) Logzeile gibt den Wert ausIch erkläre mir das mit dem Callback.
Kann mir jemand helfen?
class Person { protected firstName: string; private lastName: string; constructor(firstName: string, lastName: string) { this.firstName = firstName; this.lastName = lastName; init(); } public init() { log("1.) Good morning " + this.firstName + " " + this.lastName); // <<<<----------------- this.firstName/lastName --> "Uwe" !! on({id: "hmip.0.devices.3014F711A0000C1BE99173F5", val: true}, function (obj) { log("2.) Good morning " + this.firstName + " " + this.lastName); // <<<<----------------- this.firstName/lastName --> undefined !! }); } }
-
mir wurde an anderer Stelle geholfen.
Wenn man den Callback so gestaltet funktioniert es, d.h. mit "obj =>"
on({id: this.input.baseStatePraesenzmelder + ".channels.1.presenceDetected", val: true}, obj => {
-
@uwe72 Du solltest zusätzlich noch das
init()
im Konstruktor durchthis.init()
ersetzen.Für alle anderen, die hierdrüber stolpern:
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/Arrow_functions#keine_bindung_von_this