Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

SyntaxError: function statement requires a name(функция оператор требует имя)

Сообщение

SyntaxError: ожидаемый идентификатор (Edge)SyntaxError: оператор функции требует имя [Firefox]SyntaxError: непредвиденный токен ( [Chrome]

Тип ошибки

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

В коде есть оператор function, для которого требуется имя. Вам нужно будет проверить, как определены функции и нужно ли предоставить для них имя, или если рассматриваемая функция должна быть выражением функции,IIFE, или если код функции вообще правильно размещён в этом контексте.

Примеры

Операторы vs выражения

Оператор функции (или объявление функции) требует имя, это не будет работать:

js
function () {  return 'Hello world';}// SyntaxError: function statement requires a name

Вы можете использовать выражение функции (назначат) вместо:

js
var greet = function () {  return "Hello world";};

Или, ваша функция возможно, предназначена для IIFE (немедленно вызываемое выражение функции), которое является функцией, которая запускается, как только она определена. В этом случае вам понадобится ещё несколько брекетов:

js
(function () {})();

Помеченные функции

При использовании меток функций после ключевого слова function всё равно потребуется указать имя функции. Это не работает:

js
function Greeter() {  german: function () {    return "Moin";  }}// SyntaxError: оператор функции требует имя

Это будет работать, например так:

js
function Greeter() {  german: function g() {    return "Moin";  }}

Методы объекта

Если вы намеревались создать метод объекта, вам нужно будет создать объект. Тогда допустим следующий синтаксис без имени после ключевого слова function.

js
var greeter = {  german: function () {    return "Moin";  },};

Синтаксис вызова

Кроме того, внимательно следите за синтаксисом при использовании колбэков. Очень легко забыть скобку или запятую.

js
promise.then(  function() {    console.log("success");  });  function() {    console.log("error");}// SyntaxError: function statement requires a name

как бы было правильно:

json
promise.then(  function() {    console.log("success");  },  function() {    console.log("error");  });

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

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp