Полагаю, JSLint предупреждает вас, поскольку вы пытаетесь изменить один из входных аргументов, используя проверку с ключевым словом arguments. JSHint , однако, не дает мне никакого предупреждения при попытке вашего кода.
Решением вашей проблемы было бы проверить, определено ли option
или нет, таким образом вы обходитепроблема с отправкой ложных значений:
function(a, b, option) {
if(typeof option === "undefined") {
option = "some default value";
}
// ...
}
Если вы обнаружите, что писать эту проверку typeof
каждый раз неудобно, создайте функцию isDef
:
function isDef(param) {
return typeof param !== "undefined";
}
function(a, b, option) {
option = isDef(option) ? option : "some default value";
// ...
}
//Саймон А.