[JAVASCRIPT] Otez moi d'un doute

'lut tous,

Suis en plein dans l’OOP avec JS, et j’ai un ptit truc qui me turlupine.
Soit le code suivant :

[code]function MyObj(x,y,z)
{
this.x = x;
this.y = y;
this.add1 = add1;
}

function add1()
{
alert( this.x + this.y);
}

MyObj.prototype.add2 = function()
{
alert( this.x + this.y);
}[/code]
Nous sommes d’accord pour dire que :

o1 = new MyObj(1,3); o2 = new MyObj(1,3); o1.add1(); o2.add2();M’affiche deux fois 4.

Autrement dit, j’ai créé des propriétés dans ma classe MyObj de deux façons différentes mais ça fait exactement la même chose.
La seule différence, d’après ce que j’ai compris par quelques recherches sur GG, c’est qu’en passant par “prototype”, la méthode n’est créée qu’une fois pour toute pour tous les objets (un peu comme static en C++) alors qu’avec une assignation (this.add=add1) la mémoire est allouée à chaque “new”.
J’ai bon ou bien j’ai loupé une subtilité quelque part ?

Antoine