--- title: 'Предупреждение: затворы выражения являются устаревшими' slug: Web/JavaScript/Reference/Errors/Deprecated_expression_closures tags: - JavaScript - Warning translation_of: Web/JavaScript/Reference/Errors/Deprecated_expression_closures ---
{{jsSidebar("Errors")}}

Сообщение

Warning: замыкания выражений являются устаревшими

Тип ошибки

Предупреждающий. Выполнение скрипта не будет остановлено.

Что пошло не так?

Нестандартный синтаксис закрытия выражений (сокращённый синтаксис функций) устарел и больше не должен использоваться. Этот синтаксис будет полностью удалён в Этот синтаксис будет полностью удалён в {{bug(1083458)}} а скрипты с его помощью {{jsxref("SyntaxError")}} затем.

Примеры

Неправильный синтаксис

Замыкания выражений пропускают фигурные скобки или операторы return из объявлений функций или определений методов в объектах.

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; }
};

Стандартный синтаксис с использованием функций со стрелками:

var x = () => 1;

Стандартный синтаксис с использованием сокращённого синтаксиса метода

Замыкания выражений также можно найти с помощью getter'а и setter'а, например:

var obj = {
  get x() 1,
  set x(v) this.v = v
};

With ES2015 method definitions, это может быть конвертированно в:

var obj = {
  get x() { return 1 },
  set x(v) { this.v = v }
};

Смотрите также