@KitCat12

Как указать имя передаваемого параметра при вызове функции?

Допустим в python это выглядит так
def test(a: str = "1", b: str = "2"):
    print(a, b)

test(a="5", b="10")


Когда я пытаюсь так же передать параметры при вызове функции в js,

code += test(a="5", b="10");

то получаю

Uncaught ReferenceError: a is not defined
  • Вопрос задан
  • 78 просмотров
Решения вопроса 2
mmmaaak
@mmmaaak
В js нет именованных параметров, можно, как вариант, все запаковать в объект и передавать, будет плюс минус похоже
function f({ a, b }) { console.log(a, b); }
f({ a: 5, b: 10 });
Ответ написан
Stalker_RED
@Stalker_RED
Никак.
Можно писать так:
function test(a, b) {
 console.log(a,b); 
}
// вызов
test(5,10);


кто из них a и кто b определяется тем, в каком порядке они переданы.
такая-же петрушка во всех c-like языках, включая java и php, хотя и туда уже недавно добавили именованные параметры, но исторически синтаксис именно такой.

В js можно передавать обьект
function test(obj) {
 console.log(obj.a, obj.b); 
}
// вызов
test({'a':5, 'b' :10});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Деструктурировать – непередеструктурировать:
можно задать сразу значения по умолчанию, да и сигнатура читабельнее:
function test({ a = "Aa", b = "bar", c = "Цеце" }) {
  console.log({a, b, c});

  // что-то делаем с переменными a, b, c:
  console.log(`${a} ${c} пошла в ${b}`);
}

test({ a: "100" });  //    { a: "100", b: "bar", c: "Цеце" }
// 100 Цеце пошла в bar
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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