Warning: expression closures are deprecated
JavaScript の警告 "expression closures are deprecated" は、標準外の式クロージャ構文 (略記関数構文) が使用されたときに発生します。
メッセージ
Warning: expression closures are deprecated
エラーの種類
警告。 JavaScript の実行は中断されません。
原因
標準外の式クロージャ構文 (略記関数構文) は非推奨のため、使用すべきではありません。この構文は bug 1083458 で削除予定であり、削除された後は SyntaxError
が発生します。
例
非推奨の構文
式クロージャで、中括弧を省略したり、関数宣言やメソッド定義で return 文を省略したりすることです。
var x = function() 1;
var obj = {
count: function() 1
};
標準の構文
標準外の式クロージャ構文から標準の ECMAScript 構文に変換するためには、波括弧と return ステートメントを追加します。
var x = function() { return 1; }
var obj = {
count: function() { return 1; }
};
アロー関数を使用した標準の構文
代わりにアロー関数を使用することもできます。
var x = () => 1;
略記メソッド構文を使用した標準構文
次のように、式クロージャがゲッターとセッターにも見られることがあります。
var obj = {
get x() 1,
set x(v) this.v = v
};
ES2015 のメソッド定義で、次のように変換することができます。
var obj = {
get x() { return 1 },
set x(v) { this.v = v }
};