правильно указывать значения параметров при вызове функции в JavaScript - PullRequest
1 голос
/ 20 июня 2019

У меня есть функция foo, определенная следующим образом,

foo = function(a=1,b=2,c=3){
    console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}

Как использовать значение по умолчанию b и указать a и c только при вызове функции?

Например, я хотел бы вернуть консольный журнал your inputs are a:3, b:2, c:1. при вызове foo(a=3,c=1).

Однако, вызывая foo(a=3,c=1), журнал консоли будет your inputs are a:3, b:1, c:3.. JavaScript считает, что c=1 должно быть значением второго параметра b, а третий параметр c не задан и будет использовать значение по умолчанию 3. Кроме того, путем вызова этой функции также создаются объекты a и c.

1 Ответ

3 голосов
/ 20 июня 2019

Я бы вместо этого передал объект и деструктурировал бы аргументы:

function foo ({ a=1,b=2,c=3 }){
    console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}

foo({ a: 99, c: 99 });

Если функция может быть вызвана без какого-либо параметра, присвойте параметру по умолчанию также {}:

function foo ({ a=1,b=2,c=3 } = {}){
    console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}

foo();

Вы также можете явно указать undefined для пропущенных аргументов:

function foo (a=1,b=2,c=3){
    console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}

foo(99, undefined, 99);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...