„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ist es jemals notwendig, Strings an setTimeout zu übergeben?

Ist es jemals notwendig, Strings an setTimeout zu übergeben?

Veröffentlicht am 08.11.2024
Durchsuche:219

Is It Ever Necessary to Pass Strings to setTimeout?

Übergabe von Strings an setTimeout: Eine Frage der Notwendigkeit

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 Szenarios geben, in denen diese Syntax von Vorteil sein könnte.

Die Debatte über die Abwertung

Die herkömmliche Syntax für setTimeout und setInterval beinhaltete die Übergabe einer Zeichenfolge, die den auszuführenden Code darstellte. Zum Beispiel:

setTimeout('doSomething(someVar)', 10000);

Modernes JavaScript fördert jedoch stattdessen die Verwendung von Funktionsreferenzen:

setTimeout(function() {
    doSomething(someVar);
}, 10000);

Das Argument für Strings

Die Debatte entsteht, wenn geprüft wird, ob es triftige Gründe gibt, 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.

Das Argument gegen Strings

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:

setTimeout(window.doSomething(someVar), 10000);

Historische Toleranz

Die Zulassung von Zeichenfolgen als Argumente für setTimeout und setInterval ist wahrscheinlich wurzelt in historischen Faktoren. 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.

Schlussfolgerung

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729380675 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3