Warning: expression closures are deprecated
The JavaScript warning "expression closures are deprecated" occurs when the non-standard expression closure syntax (shorthand function syntax) is used.
Message
Warning: expression closures are deprecated
Error type
Warning. JavaScript execution won't be halted.
What went wrong?
The non-standard expression closure syntax (shorthand function syntax) is deprecated and shouldn't be used anymore. This syntax will be removed entirely in bug 1083458 and scripts using it will throw a SyntaxError
then.
Examples
Deprecated syntax
Expression closures omit curly braces or return statements from function declarations or from method definitions in objects.
var x = function() 1; var obj = { count: function() 1 };
Standard syntax
To convert the non-standard expression closures syntax to standard ECMAScript syntax, you can add curly braces and return statements.
var x = function() { return 1; } var obj = { count: function() { return 1; } };
Standard syntax using arrow functions
Alternatively, you can use arrow functions:
var x = () => 1;
Standard syntax using shorthand method syntax
Expression closures can also be found with getter and setter, like this:
var obj = { get x() 1, set x(v) this.v = v };
With ES2015 method definitions, this can be converted to:
var obj = { get x() { return 1 }, set x(v) { this.v = v } };
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Deprecated_expression_closures