Функции определяются в 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
поменялись местами.