Regel
darf nicht überschreiben Funktion Argumente.
Neuzuweisung von Funktion Parameter kann verwirren
Aufrufer verwirren und machen. Fehlersuche schwierig.
Unterstützte Sprachen: 45+Einführung
Durch die Neuzuweisung von Funktionsparametern ändert sich der Wert der Argumente innerhalb der Funktion, so dass nicht klar ist, welchen Wert der Parameter zu einem bestimmten Zeitpunkt hat. Beim Debuggen kann man sich nicht darauf verlassen, dass ein Parameter immer noch den vom Aufrufer übergebenen Wert enthält. Dies schafft Verwirrung für jeden, der den Code liest, und erschwert die Fehlersuche, da sich der Wert des Parameters während der Ausführung ändert.
Code-Beispiele
❌ Nicht konform:
function processUser(user) {
if (!user) {
user = { id: null, name: 'Guest' };
}
user = { ...user, processedAt: Date.now() };
if (user.age < 18) {
user = { ...user, restricted: true };
}
return user;
}Warum das falsch ist: Die Benutzer Parameter wird mehrfach neu zugewiesen, so dass es unmöglich ist, zu erfahren, was der ursprüngliche Aufrufer übergeben hat, ohne die gesamte Funktion zu lesen. Bei der Fehlersuche werden geänderte Werte und nicht die tatsächliche Eingabe angezeigt, so dass es schwierig ist, Probleme bis zur Quelle zurückzuverfolgen.
✅ Konform:
function processUser(user) {
const currentUser = user || { id: null, name: 'Guest' };
const processedUser = {
...currentUser,
processedAt: Date.now()
};
if (currentUser.age < 18) {
return { ...processedUser, restricted: true };
}
return processedUser;
}
Warum das wichtig ist: Neue Variablen (currentUser, bearbeitetBenutzer) halten Zwischenwerte, während die ursprüngliche Benutzer Parameter bleibt unverändert. Debugger zeigen den tatsächlichen Eingabewert an, und der Code verfolgt eindeutig die Transformationen durch benannte Variablen.
Schlussfolgerung
Verwenden Sie neue Variablen für Transformationen, anstatt Parameter neu zuzuweisen. Dadurch wird der Datenfluss eindeutig und die ursprüngliche Eingabe bleibt für die Fehlersuche erhalten. Die geringe Ausführlichkeit der zusätzlichen Variablendeklarationen wird durch die verbesserte Lesbarkeit und Debugging-Möglichkeiten aufgewogen.
.avif)
