Si sta tentando di eseguire un tipo di ciò che viene chiamato in alcune lingue overloading del metodo.
JavaScript non supporta in questo modo.
JavaScript è molto versatile e consente di ottenere questo tipo di funzionalità in diversi modi.
Per il tuo esempio particolare, la tua funzione add
, ti consiglio di creare una funzione che accetti un numero arbitrario di parametri, utilizzando l'oggetto arguments
.
jQuery.extend(jQuery, {
add: function (/*arg1, arg2, ..., argN*/) {
var result = 0;
$.each(arguments, function() {
result += this;
});
return result;
}
});
Quindi è possibile passare qualsiasi numero di argomenti:
alert(jQuery.add(1,2,3,4)); // shows 10
Per il metodo più complesso sovraccarico è possibile rilevare il numero di argomenti passati e dei suoi tipi, per esempio:
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
}
}
//...
}
Controlla il seguente articolo, contiene una tecnica molto interessante che sfrutta alcune caratteristiche del linguaggio JavaScript come chiusure, applicazioni di funzioni, ecc, per imitare lo metodo sovraccarico:
Penso che sarà sufficiente sovrascrivere la prima proprietà 'aggiungi' con il 2 ° – alex
presumo che intendessi "sovraccarico". Ma come nota alex, la seconda funzione * sostituirà ** ** la prima ... – Shog9