Tất cả,JSLint - Không làm biến đổi tham số <x> khi sử dụng 'đối số'?
Tôi sử dụng JSLint để xác thực tệp JS của mình. Trong dự án gần đây nhất của tôi, tôi đang sử dụng định dạng sau để thiết lập các giá trị mặc định cho một số chức năng Javascript (thêm chi tiết here):
function(a, b, option) {
option = arguments.length > 2 ? option : "some default value";
// ...
}
Tuy nhiên điều này làm cho build mới nhất của JSLint để sản xuất các lỗi sau:
"Do not mutate parameter 'option' when using 'arguments'."
Tôi biết rằng việc sử dụng phương pháp phổ biến hơn để gán giá trị mặc định (ví dụ: option = option || {};
) sẽ làm giảm lỗi; tuy nhiên, điều này sẽ tạo ra hành vi không chính xác nếu tôi định chuyển giá trị falsey tới option
.
Giải pháp duy nhất cho vấn đề này có giới thiệu một biến mới không? ví dụ:
var option2 = arguments.length > 2 ? option : "some default value";
Một biến địa phương, đó là bạn "giới thiệu một tham số thứ hai" là một giải pháp tốt hơn. – Biswanath