Spec-Zone.ru › JavaScript

SyntaxError: дублирующий формальный аргумент x

Исключение JavaScript "duplicate formal argument x" или "duplicate argument names not allowed in this context" возникает, когда функция создает два или более параметра связывания с одинаковым именем, и функция не является нестрогой функцией с только простыми параметрами.

Сообщение

SyntaxError: Duplicate parameter name not allowed in this context (V8-based)
SyntaxError: duplicate formal argument x (Firefox)
SyntaxError: duplicate argument names not allowed in this context (Firefox)
SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared. (Safari)
SyntaxError: Duplicate parameter 'x' not allowed in function with default parameter values. (Safari)
SyntaxError: Duplicate parameter 'x' not allowed in function with a rest parameter. (Safari)
SyntaxError: Duplicate parameter 'x' not allowed in function with destructuring parameters. (Safari)

Тип ошибки

SyntaxError

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

Наличие двух формальных параметров с одинаковым именем, вероятно, является ошибкой — второе вхождение сделало бы первое вхождение недоступным по имени параметра. В устаревшем JavaScript это было разрешено. Поэтому, чтобы не нарушать существующий код, это является ошибкой только в том случае, если код гарантированно не является устаревшим — либо потому, что он находится в строгом режиме, либо он использует современный синтаксис параметров (rest, default или destructured параметры).

Примеры

Недопустимые случаи

"use strict";

function add(x, x) {
  // How can you access both "x" parameters?
  // SyntaxError: duplicate formal argument x
}
function doSomething(name, { name }) {
  // How can you access both "name" parameters?
  // SyntaxError: duplicate argument names not allowed in this context
}

Допустимые случаи

function doSomething(operationName, { name: userName }) {
  // You can access both "operationName" and "userName" parameters.
}

function doSomething(name, user) {
  // You can access both "name" and "user.name" parameters.
}

См. также

  • Функции
  • Строгий режим

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Duplicate_parameter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API