Ach ich Schussel, hab ich doch erst im lesen des eigenen Beitrags gesehen was ich da übersehen habe ;-)
Hier sieht man schön den Unterschied:
function Circle {x,y,r} {
this.x=x;
this.y=y;
this.r=r;
}
Circle.prototype.pi = 3.1415;
und vergleiche jetzt:
function Circle {x,y,r} {
this.x=x;
this.y=y;
this.r=r;
this.pi=3.1415;
}
Das wär intuitiv sicher der erste Lösungsansatz gewesen, oder? 'pi' einfach als Instanzvariable zu definieren. Aber was passiert nun bei letzterer Variante? Bei *jedem* neuen Objekt (c = new Circle()) wird zusätzlich zu x , y , und r - die bei jedem Objekt sicherlich andere Werte haben - auch noch ein pi mit festem Wert initialisiert, völlig unnütz, da es sowieso für alle Objekte gleich ist !!
Stell dir vor du willst die einen Bildschirmschoner basteln und ein paar Kreise ausgeben, die sich über den Bildschirm räkeln, sagen wir ca. 100.000.000 ;-)
Hoffe die Sache ist nun etwas klarer ;-)
lg regenfeld