--- title: 'Warning: expression closures are deprecated' slug: Web/JavaScript/Reference/Errors/Deprecated_expression_closures tags: - JavaScript - Warning - エラー - 警告 translation_of: Web/JavaScript/Reference/Errors/Deprecated_expression_closures ---
JavaScript の警告 "expression closures are deprecated" は、標準外の式クロージャ構文 (略記関数構文) が使用されたときに発生します。
Warning: expression closures are deprecated
警告。 JavaScript の実行は中断されません。
標準外の式クロージャ構文 (略記関数構文) は非推奨のため、使用すべきではありません。この構文は bug 1083458 で削除予定であり、削除された後は {{jsxref("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 } };