Etendre des objets
En javascript il est possible d'ajouter des fonctionnalités à des objets (les vôtres ou ceux qui sont existants), Sur certains navigateurs il est aussi possible d'étendre les objets du DOM.
Pour étendre un objet on ajoute une fonction à son prototype, par exemple on peut étendre l'objet String avec une fonctionnalité qui permettrait de compter certains caractères.
var cpt = 0;
for(var i=0;i<this.length;i++) {
if(this.charAt(i)==c) cpt++;
}
return cpt;
}
var t = "Je suis un texte";
alert(t.countChars(' ')); // affiche 3
Particularité d'un langage à prototypes
Dans le code suivant on déclare un objet puis on crée deux instances a et b. Ensuite on ajoute une propriété au prototype de l'objet Test. Cette nouvelle caractéristique est disponible pour toutes instances (déjà crées ou pas encore crées).
this.abc = 444; // initialise une propriété
}
var a = new Test(); // crée une instance
var b = new Test(); // crée une instance
Test.prototype.toto = 12; // ajoute un propriété au prototype
a.titi = 4; // modifie une propriété de l'instance a
alert(a.toto); // affiche 12
alert(a.titi); // affiche 4
alert(b.toto); // affiche 12
alert(b.titi); // affiche undefined
On observera que le fait d'affecter une propriété quelconque à une instance (ici a.titi = 4) n'affecte que l'instance a et non le prototype de l'objet Test.
Editer