@AndrewRusinas

Ошибка при деструктурирующем присваивании аргументов функции?

Раньше не замечал такого поведения, но сейчас при попытке взывать функцию такого вида:
function hello ({ lol, kek }) {
  //..code
}

hello()


Я получаю ошибку, что невозможно прочитать lol of undefined. Справедливо, но я почему-то думал, что если задать этим переменных значения по умолчанию, то такого быть не должно:
function hello ({ lol = 1, kek = 2 }) {
  //..code
}

hello() // всё еще ошибка


Я давно так не писал, но сейчас почему-то такое поведение показалось неожиданным, казалось, что значения по умолчанию должны перебить отсутствие объекта. То есть такие функции всегда нужно вызывать как hello({})?
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Бородатый программер
Нужно самой деструктуризации дать значение по умолчанию:
function hello ({ lol, kek } = {}) {
  //..code
}

При этом и отдельным параметрам так же можно задать умолчания:
function hello ({ lol = 1, kek = 2 } = {}) {
  //..code
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы