botaniQQQ
@botaniQQQ
Q

Как работать с callback и необязательными параметрами в JS?

Привет.

Есть функция, например:

function hello(one, two, three, callback) {

    ...

}

two, three - необязательные параметры, однако в таком случае требуется переопределить callback и назначить этим параметрам значения по умолчанию.

function hello(one, two, three, callback) {
    if (arguments.length === 3) {
        callback = three;
        three = 3;
    }
    else if (arguments.length === 2) {
        callback = two;
        two = 2;
        three = 3;
    }
    
    ...
    
}

Выглядит довольно "топорно", если учесть, что параметров может быть много. Есть ли более элегантный способ работы?
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ответы на вопрос 1
boratsagdiev
@boratsagdiev
Я сейчас обычно использую подобную запись:

function doSomething({ one, two = "two", callback = null, ...args } = {}) {
  // some function shite

  if (args.anotherParam) {
    callback(two);
  } else {
    callback(one);
  }
}

doSomething({
  one: "notSoOne",
  callback: console.log,
  anotherParam: "mmmmmmhhhmm"
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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