Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Global script Benutzung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Global script Benutzung

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

      Ahoi!

      Frage:

      Ein Global script wird vor jedem common script kopiert, bevor das dann ausgeführt wird, richtig?

      Das heisst auch das der variablenhaushalt (von dem zusammen kopierten script) auch nur dem

      zusammen kopierten script gehört. Korrekt?

      Wieso die doofe Frage:

      Wenn ich eine Funktion "Timer" baue, die lokale Daten speichert, und diese dann im Script

      Wecker1 nutze, sollte der lokale Variablenhaushalt nicht mit dem Script Wecker2 kollidieren usw…

      Eigentlich irgendwie logisch, aber ich frage lieber einmal mehr nach 🙂

      btw:

      iobroker ist mal eine richtig coole Sache! Hut ab...

      LG

      Uwe

      1 Reply Last reply Reply Quote 0
      • blauholsten
        blauholsten Developer last edited by

        Nein,

        Meines Wissens nach sind in einem global Skript deklarierte Variablen auch dann wirklich global.

        Edit:

        Wenn ich deine Frage nochmal lese, bin ich mir auch nicht mehr sicher….

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          @DerUwe:

          Ein Global script wird vor jedem common script kopiert, bevor das dann ausgeführt wird, richtig? `
          Ja, es wird vor alle nicht globalen Skripte kopiert.
          @DerUwe:

          Wenn ich eine Funktion "Timer" baue, die lokale Daten speichert, und diese dann im Script

          Wecker1 nutze, sollte der lokale Variablenhaushalt nicht mit dem Script Wecker2 kollidieren usw… `
          Nein, jedes Skript hat seine eigenen Variablen - unabhängig vom Namen. Es können keine Werte von einem Skript zu einem anderen Skript übergeben werden; dazu benötigt man Datenpunkte (setState(id, wert), getState(id).val).

          Globale Skripte sollten nur häufig verwendete Funktionen enthalten. Innerhalb von Funktionen deklarierte Variablen sind immer lokal, d.h. die Gültigkeit ist auf die Funktion beschränkt.

          1 Reply Last reply Reply Quote 0
          • D
            DerUwe last edited by

            Ah, ok, verstanden!

            Also schreibe ich eine Funktion "Zeitschaltuhr" und packe diese in Global,

            und nutze die Funktion dann von mir aus 5 mal in anderen Scripten mit den jeweiligen Parametern.

            LG

            Uwe

            1 Reply Last reply Reply Quote 0
            • N
              NyanCat last edited by

              sorry, dass ich diesen alten Thread wieder raus hole, aber ich dachte für diese kleine Frage passt das hier ganz gut.

              Wenn ich use strict in einem globalen script verwende, gilt der strict mode dann auch für alle anderen scripts ?

              Danke und Grüße

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @NyanCat:

                Wenn ich use strict in einem globalen script verwende, gilt der strict mode dann auch für alle anderen scripts ? `
                Ich würde behaupten: Nein. Begründung:

                1. 'use strict' wirkt auf den Parser des JS-Editors und nicht auf den Compiler.

                2. 'use strict' wirkt nur, wenn es am Anfang des Skripts verwendet wird. Globale Skripte werden nicht mehr vor die anderen Skripte kopiert, sondern an die anderen Skripte angehängt. Das verursacht zwar evtl. einen zusätzlichen Compiler-Durchlauf, hat aber den Vorteil, dass man mit den Zeilennummern in den Fehlermeldungen etwas anfangen kann, was vor der Änderung nicht der Fall war.

                1 Reply Last reply Reply Quote 0
                • N
                  NyanCat last edited by

                  @paul53:

                  Ich würde behaupten: Nein. `

                  Vielen Dank für die Info,

                  weißt du zufällig auch noch eine Lösung bei diesem Problem?

                  viewtopic.php?f=21&t=13122&p=138789#p138789

                  Grüße.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  850
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  2457
                  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