Warning: expression closures are deprecated
Fehlermeldung
Warning: expression closures are deprecated
Fehlertyp
Warnung. Die Ausführung von JavaScript wird nicht angehalten.
Was ist falsch gelaufen?
Die nicht standardisierte Ausdrucks Closure Syntax (Kurzform der Funktionssyntax) ist veraltetet und sollte nicht mehr verwendet werden. Diese Syntax wird komplett entfernt (Bug 1083458) und Skripte die diese Benutzen erzeugen dann einen SyntaxError
.
Beispiele
Veraltete Syntax
Ausdrucks Closures vermeiden geschweifte Klammern oder return Anweisungen in Funktionsdeklarationen oder in Methodendefinitionen in Objekten.
var x = function() 1;
var obj = {
count: function() 1
};
Standardsyntax
Um die nicht standardisierte Ausdrucks Closures Syntax zu Standard-ECMAScript Syntax zu konvertieren müssen geschweifte Klammern und ein return Statement hinzugefügt werden.
var x = function() { return 1; }
var obj = {
count: function() { return 1; }
};
Standardsyntax mit Arrowfunktionen
Alternativ können Arrow-Funktionen genutzt werden:
var x = () => 1;
Standardsyntax mit Kurzformmethodensyntax
Anweisungs Closures können auch in Gettern und Settern gefunden werden:
var obj = {
get x() 1,
set x(v) this.v = v
};
Mit ES2015 Methodendefinitionen können diese folgendermaßen konvertiert werden :
var obj = {
get x() { return 1 },
set x(v) { this.v = v }
};