Функции определяются в Python и JavaScript похожим образом, но с некоторыми тонкими различиями.
| Python | Javascript |
|---|---|
| Именованные параметры # | |
x = 2 y = 3 x = 2 y = 3 x = 3 y = 2 |
x = 2 y = 3 x = 2 y = 3 x = 2 y = 3 3 2
x = 2 y = 3 |
У вас может возникнуть искушение использовать синтаксис, похожий на Python, для передачи аргументов функции. К сожалению, в JavaScript он не сработает, поскольку JS не поддерживает именованные параметры функций. При выполнении строчки
foo(x=2, y=3)на самом делеx=2осуществляют операцию присваивания переменнойxзначения2, аy=3— переменнойyзначения3(в области видимости, из которой функция вызывается). При этом операции присваивания в JS возвращают значение (равное присвоенной величине), поэтому эта строчка сработает какfoo(2, 3). Следующая строчка сработает точно так же, несмотря на то, чтоxиyпоменялись местами.