Wszystko,JSLint - Nie mutować parametru <x> podczas używania "argumentów"?
Używam JSLint do sprawdzania poprawności moich plików JS. W swoim najnowszym projekcie, używam następujący format, aby ustawić wartości domyślne dla wielu funkcji JavaScript (dalsze szczegółowe here):
function(a, b, option) {
option = arguments.length > 2 ? option : "some default value";
// ...
}
To jednak powoduje, że najnowsza wersja JSLint produkować następujący błąd:
"Do not mutate parameter 'option' when using 'arguments'."
Zdaję sobie sprawę, że przy użyciu bardziej wspólnej metody przypisywania domyślnych (tj option = option || {};
) supresses błąd; jednak spowoduje to nieprawidłowe zachowanie, jeśli zamierzam przekazać wartość falsey do option
.
Czy jedynym rozwiązaniem tego problemu jest wprowadzenie nowej zmiennej? np .:
var option2 = arguments.length > 2 ? option : "some default value";
zmiennej lokalnej, która jest twój „wprowadzenie drugiego parametru” jest lepszym rozwiązaniem. – Biswanath