JavaScript không hỗ trợ Function Overloading theo cách truyền thống. Nếu bạn định nghĩa nhiều hàm cùng tên, hàm sau sẽ ghi đè hàm trước.
function funcONE(x, y) { return x * y; }
function funcONE(z) { return z; }
Khi gọi:
funcONE(5); // Trả về 5 (hàm thứ 2) funcONE(5, 6); // Trả về 5 (vẫn hàm thứ 2, đối số 6 bị bỏ qua), KHÔNG phải 30
Giải pháp thay thế: Dùng arguments object, rest parameters, hoặc kiểm tra typeof đối số để mô phỏng overloading.