Todos,JSLint - ¿No se cambia el parámetro <x> cuando se usan 'argumentos'?
Uso JSLint para validar mis archivos JS. En mi más reciente proyecto, estoy usando el siguiente formato para establecer los valores predeterminados para un número de funciones de JavaScript (más detallada here):
function(a, b, option) {
option = arguments.length > 2 ? option : "some default value";
// ...
}
Sin embargo, esto hace que la última versión de JSLint para producir el siguiente error:
"Do not mutate parameter 'option' when using 'arguments'."
soy consciente de que usando el método más común para valores predeterminados de la asignación (es decir, option = option || {};
) suprime el error; sin embargo, esto producirá un comportamiento incorrecto si tengo la intención de pasar un valor de falsey a option
.
¿La única solución a este problema es introducir una nueva variable? ej .:
var option2 = arguments.length > 2 ? option : "some default value";
Una variable local, que es su "introducir un segundo parámetro" es una solución mejor. – Biswanath