Heim  >  Artikel  >  Web-Frontend  >  Gibt es Ausnahmen von der Ablehnung von String-Parametern in setTimeout?

Gibt es Ausnahmen von der Ablehnung von String-Parametern in setTimeout?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-20 07:37:29963Durchsuche

Are There Exceptions to the Deprecation of String Parameters in setTimeout?

Die Abschaffung der Übergabe von Strings an setTimeout: Gibt es jemals eine Ausnahme?

Trotz des weit verbreiteten Konsenses, dass die Übergabe von Strings an setTimeout unerwünscht ist, kann es Fälle geben, in denen dies der Fall ist Die Praxis wird unterhalten. Dies wirft die Frage auf: Gibt es legitime Gründe für einen Verstoß gegen diese Konvention?

Der herkömmliche Grund für die Ablehnung von Zeichenfolgenparametern besteht darin, dass sie im globalen Bereich ausgeführt werden, was zu Leistungsproblemen und potenziellen Sicherheitslücken führt. Die moderne Syntax verzichtet auf diesen Ansatz und übergibt stattdessen Funktionen als Argumente an setTimeout:

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

Stellen Sie sich das Szenario vor, in dem eine Funktion oder Variable global existiert, aber lokal überschrieben wird. Der Entwickler kann erwägen, die veraltete Syntax zu verwenden, um auf die globale Instanz zuzugreifen:

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

Der Zugriff auf globale Variablen über das Fensterobjekt (z. B. window.globalVar) macht diese Ausnahme jedoch überflüssig.

Die Zulässigkeit von String-Parametern in setTimeout und setInterval ist wahrscheinlich auf ihre historische Priorität zurückzuführen. Ursprünglich akzeptierten diese Funktionen nur Zeichenfolgen, die auszuführenden Code enthielten. Die Einführung von Funktionsobjekten als gültige Argumente erfolgte später. Das nachträgliche Verbot von String-Parametern würde den vorhandenen Code beschädigen.

Das obige ist der detaillierte Inhalt vonGibt es Ausnahmen von der Ablehnung von String-Parametern in setTimeout?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn