TypeError: переменная "x" переопределяет аргумент
Сообщение
TypeError: переменная "x" повторно объявляет аргумент (Firefox)
Тип ошибки
TypeError
предупреждение только в строгом режиме.
Что пошло не так?
То же имя переменной происходит в качестве параметра функции, и затем повторно объявляется с помощью назначения var в теле функции. Это может быть конфликт имён, поэтому JavaScript предупреждает об этом.
Эта ошибка возникает как предупреждение только в коде строгого режима. В нестрогом коде повторное объявление игнорируется.
Примеры
Неправильные примеры
В этом случае переменная "arg" объявляет аргумент повторно.
'use strict';
function f(arg) {
var arg = 'foo';
}
Правильные примеры
Чтобы исправить это предупреждение, оператор var можно просто опустить, так как переменная уже существует. В других случаях можно переименовать параметр функции или имя переменной.
'use strict';
function f(arg) {
arg = 'foo';
}