Solucio sobrecarrega de funcions
De wikiserver
La revisió el 06:23, 10 nov 2013 per Asalinas (Discussió | contribucions) (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…».)
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'));