Heim >Web-Frontend >js-Tutorial >Ist es jemals notwendig, Strings an setTimeout zu übergeben?
Viele Entwickler missbilligen die Praxis der Übergabe von Strings an setTimeout aufgrund von Leistungsbedenken, potenziellen Sicherheitsrisiken und weil sie veraltet ist Status. Es kann jedoch seltene Szenarien geben, in denen diese Syntax von Vorteil sein könnte.
Die traditionelle Syntax für setTimeout und setInterval beinhaltete die Übergabe einer Zeichenfolge, die den auszuführenden Code darstellte. Zum Beispiel:
<code class="javascript">setTimeout('doSomething(someVar)', 10000);</code>
Modernes JavaScript fördert jedoch stattdessen die Verwendung von Funktionsreferenzen:
<code class="javascript">setTimeout(function() { doSomething(someVar); }, 10000);</code>
Die Debatte entsteht, wenn man darüber nachdenkt, ob dies der Fall ist Gibt es triftige Gründe, von der empfohlenen Syntax abzuweichen? Ein mögliches Argument könnte der Wunsch sein, auf eine Funktion oder Variable zuzugreifen, die sich im globalen Bereich befindet, aber möglicherweise lokal überschrieben wurde.
Trotz dieser Begründung ist die Verwendung von Strings in setTimeout wird dringend davon abgeraten. Auf globale Variablen kann weiterhin über die Eigenschaften des Fensterobjekts zugegriffen werden. Zum Beispiel:
<code class="javascript">setTimeout(window.doSomething(someVar), 10000);</code>
Die Zulassung von Zeichenfolgen als Argumente für setTimeout und setInterval ist wahrscheinlich auf historische Faktoren zurückzuführen. Frühe Versionen von JavaScript unterstützten nur Zeichenfolgen. Das Hinzufügen der Möglichkeit zur Übergabe von Funktionsreferenzen erfolgte später. Um die Abwärtskompatibilität zu gewährleisten, erlauben Browser weiterhin die String-Syntax, auch wenn sie veraltet ist.
Während es in bestimmten Fällen technisch möglich ist, Strings an setTimeout zu übergeben, ist dies in der Praxis im Allgemeinen nicht der Fall aufgrund der Verfügbarkeit alternativer Ansätze empfohlen. Die Verwendung von Funktionsreferenzen sorgt für eine verbesserte Leistung, erhöht die Sicherheit und entspricht den modernen Coderichtlinien. Aus Gründen der Klarheit, Wartbarkeit und allgemeinen Codequalität sollte daher die veraltete Zeichenfolgensyntax vermieden werden.
Das obige ist der detaillierte Inhalt vonIst es jemals notwendig, Strings an setTimeout zu übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!