Ответ 1
Пользовательские функции не имеют понятия обязательных и необязательных полей, но вы можете эмулировать это поведение с помощью такой логики:
function foo(arg1, opt_arg2) {
if (arg1 == null) {
throw 'arg1 required';
}
return 'foo';
}
Это соглашение использовать префикс "opt_" для необязательных параметров, но это не требуется.