Укажите второй аргумент по умолчанию Javascript - PullRequest
0 голосов
/ 19 ноября 2018

Скажем, у меня есть функция с тремя аргументами, 2 из которых имеют значение по умолчанию:

function f(a, b=2, c=3){
    console.log(a, b, c)
}

Если я полностью доволен значением b, есть способчтобы вызвать f и указать значение для c напрямую ?

В Python я бы сделал что-то вроде f(1, c=5)?

Варианты использования: если я этого не сделаюзнать значение по умолчанию b или, если есть много других аргументов, было бы обременительно не иметь возможности сделать такую ​​вещь

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вы можете передать объект с именованными ключами следующим образом:

    function f({a, b=2, c=3}){
        console.log(a, b, c)
    }
    
    f({b: 4})
    
0 голосов
/ 19 ноября 2018

есть ли способ вызвать f и указать значение для c напрямую?

Нет, JavaScript не имеет такого именованного параметра.

Вы можете позвонить f, используя значение по умолчанию для b, указав undefined:

f(1, undefined, 5);

function f(a, b = 2, c = 3){
    console.log(a, b, c)
}
f(1, undefined, 5);

Альтернативно, вы можете определить f по-другому: пусть он принимает объект, который он разлагает на параметры, а затем вызывает его с объектом:

function f({a, b = 2, c = 3}){
    console.log(a, b, c)
}
f({a: 1, c: 5});

Если вы хотите, чтобы он был действительным, чтобы вызывать его без объекта (это ошибка с указанным выше), укажите значение по умолчанию для параметра destructured:

function f({a, b = 2, c = 3} = {}){
// -------------------------^^^^^
    console.log(a, b, c)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...