PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JavaScript OOP


Gast
2007-02-05, 17:08:17
Hallo,

ich habe bisher zwei Arten JavaScript objektorientiert zu programmieren gesehen:

1. Variante:

function Medium(id, preis)
{
this.mId = id;
this.mPreis = preis;
}

Medium.prototype.getPreis = function()
{
return this.mPreis;
};

Medium.prototype.setPreis = function(preis)
{
this.mPreis = preis;
};

function Buch(id, preis, titel)
{
this.constructor(id, preis);
this.mTitel = titel;
}

Buch.prototype = new Medium(0.0);

Buch.prototype.getTitel = function()
{
return this.mTitel;
};

Variante 2:

function Medium(id, preis)
{
var self = this;

var mId = id;
var mPreis = preis;

self.getPreis = function()
{
return mPreis;
};

self.setPreis = function(preis)
{
mPreis = preis;
};
}

function Buch(id, preis, titel)
{
var self = this;

self.basis = Medium;
self.basis(id, preis);

var mTitel = titel;

self.getTitel = function()
{
return mTitel;
};

self.setTitel = function(titel)
{
mTitel = titel;
};
}

Jetzt stellt sich mir die Frage, welche Variante ich zukünftig nutzen soll, wenn ich objektorientiert Javascript programmiere. Kennt jemand Vor- bzw. Nachteile einer dieser Varianten?

Danke

Gast

MadMan2k
2007-02-05, 20:48:32
Nr1 ist ein prototypenbasiertes Vererbung
Nr2 versucht die klassenbasierte Vererbung mit der prototypenbasierten zu simulieren

was besser ist kann man nicht so einfach sagen. guck dir dir die vor/ nachteile beider methoden an. (wiki)