Heim >Web-Frontend >js-Tutorial >Gibt es Ausnahmen von der Ablehnung von String-Parametern in setTimeout?
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!