Diferència entre revisions de la pàgina «Solucio sobrecarrega de funcions»
De wikiserver
(Es crea la pàgina amb «<pre> function afegirMetode(objecte, nom, funcio){ var old = objecte[nom]; objecte[nom] = function(){ if(funcio.length == arguments.length) return funcio.appl…».) |
|||
Línia 1: | Línia 1: | ||
− | < | + | <source lang="java"> |
function afegirMetode(objecte, nom, funcio){ | function afegirMetode(objecte, nom, funcio){ | ||
var old = objecte[nom]; | var old = objecte[nom]; | ||
Línia 40: | Línia 40: | ||
alert("Crida a la funcio amb el parametre 'a': \n " + usuaris.trobar('a')); | alert("Crida a la funcio amb el parametre 'a': \n " + usuaris.trobar('a')); | ||
alert("Crida a la funcio amb els parametres 'jaume' i 'pontons': \n " + usuaris.trobar('jaume','pontons')); | alert("Crida a la funcio amb els parametres 'jaume' i 'pontons': \n " + usuaris.trobar('jaume','pontons')); | ||
− | </ | + | </source> |
Revisió de 17:38, 11 oct 2017
function afegirMetode(objecte, nom, funcio){
var old = objecte[nom];
objecte[nom] = function(){
if(funcio.length == arguments.length)
return funcio.apply(this, arguments);
else if (typeof old == 'function')
return old.apply(this, arguments);
};
}
var usuaris = {
noms : ["joan garcia", "jaume pontons", "ana riu", "marta aran", "alex fornell", "mariona cots"]
};
// afegim funció sense paràmetres
afegirMetode(usuaris, "trobar", function(){ return this.noms; } );
//afegir funció amb 1 paràmetre
afegirMetode(usuaris, "trobar", function (cadena){
var ret = [];
for(var i = 0; i < this.noms.length; i++)
if(this.noms[i].indexOf(cadena) == 0)
ret.push(this.noms[i]);
return ret;
});
//afegir funció amb 2 paràmetres
afegirMetode(usuaris, "trobar", function(nom, cognom){
var ret = [];
for(var i = 0; i < this.noms.length; i++)
if(this.noms[i] == (nom + " " + cognom))
ret.push(this.noms[i]);
return ret;
});
//prova-ho:
alert("Crida a la funcio sense parametres: \n " + usuaris.trobar());
alert("Crida a la funcio amb el parametre 'a': \n " + usuaris.trobar('a'));
alert("Crida a la funcio amb els parametres 'jaume' i 'pontons': \n " + usuaris.trobar('jaume','pontons'));