Bạn đang cố gắng thực hiện một số loại nội dung được gọi bằng một số ngôn ngữ quá tải phương thức.
JavaScript không hỗ trợ theo cách đó.
JavaScript rất linh hoạt và cho phép bạn đạt được loại tính năng này theo nhiều cách khác nhau.
Ví dụ cụ thể của bạn, hàm add
, tôi khuyên bạn nên tạo một hàm chấp nhận số tham số tùy ý, sử dụng đối tượng arguments
.
jQuery.extend(jQuery, {
add: function (/*arg1, arg2, ..., argN*/) {
var result = 0;
$.each(arguments, function() {
result += this;
});
return result;
}
});
Sau đó, bạn có thể vượt qua bất kỳ số lượng đối số:
alert(jQuery.add(1,2,3,4)); // shows 10
Đối với phương pháp phức tạp hơn quá tải bạn có thể phát hiện số lượng đối số được truyền và các loại của nó, ví dụ:
function test() {
if (arguments.length == 2) { // if two arguments passed
if (typeof arguments[0] == 'string' && typeof arguments[1] == 'number') {
// the first argument is a string and the second a number
}
}
//...
}
Kiểm tra bài viết sau, nó chứa một kỹ thuật rất thú vị mà tận dụng lợi thế của một số tính năng ngôn ngữ JavaScript như đóng cửa, ứng dụng chức năng, vv, để bắt chước phương pháp quá tải:
Tôi nghĩ rằng sẽ chỉ ghi đè thuộc tính 'thêm' đầu tiên với số 02 – alex
Tôi giả sử bạn có nghĩa là "quá tải". Nhưng như ghi chú alex, chức năng thứ hai * sẽ * ** ghi đè ** lần đầu tiên ... – Shog9