Передача значений в функцию с несколькими параметрами по умолчанию - PullRequest
1 голос
/ 18 июня 2020

Рассмотрим функцию с 3 (произвольными) параметрами, два из которых имеют значение по умолчанию:

const foo = (a, b=1, c=2) => {
    console.log(a,b,c);
}

Теперь я хочу, чтобы параметр b имел значение по умолчанию, а параметр c, чтобы значение было передано мной. Я сделал что-то вроде этого:

foo(0, c = 10); // Ideally, a = 0, b = 1, c = 10

Но результат функции:

0 10 2

Итак, значение 10 передается в параметр b вместо c. Почему это происходит даже после того, как я явно передал значение c? Как правильно достичь того, что я хочу делать?

1 Ответ

2 голосов
/ 18 июня 2020

Вам необходимо передать undefined в качестве параметра по умолчанию.

const foo = (a, b=1, c=2) => {
    console.log(a,b,c);
}

console.log(foo(1))

console.log(foo(1, undefined,25))

Для типа подписи, которую вы пытаетесь передать, всегда учитывайте передачу объекта и деструктуризацию

    const foo = ({ a, b=1, c=2 }) => {
        console.log(a,b,c);
    }

    console.log( foo({ a: 1 }) )

    console.log( foo({ a: 2, c: 5 }) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...