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 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);
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.
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);
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.
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.
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