Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] TypeScript: Klassenvariable innerhalb Callbacks

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] TypeScript: Klassenvariable innerhalb Callbacks

    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      uwe72 last edited by uwe72

      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 aus

      Ich 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  !!
              });
          }
      }
      
      1 Reply Last reply Reply Quote 0
      • U
        uwe72 last edited by

        @uwe72

        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 => {    
        
        AlCalzone 1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer @uwe72 last edited by

          @uwe72 Du solltest zusätzlich noch das init() im Konstruktor durch this.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

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          534
          Online

          31.7k
          Users

          79.7k
          Topics

          1.3m
          Posts

          2
          3
          226
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo