The JavaScript warning "expression closures are deprecated" occurs when the non-standard expression closure syntax (shorthand function syntax) is used.
Warning: expression closures are deprecated
Warning. JavaScript execution won't be halted.
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.
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
};
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; }
};
Alternatively, you can use 箭头函数 :
var x = () => 1;
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 }
};