NEWS
Global script Benutzung
-
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
-
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….
-
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.
-
-
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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden