Konstruktor in Javascript?
Tobias R.
- javascript
Nabend,
ich hoffe das mir hier jemand weiterhelfen kann. Ich arbeite noch nicht sehr lange mit Javascript. Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche. Wie löst man so was in Javascript (ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)? Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.
Gruß
Tobias
Hi,
ich hoffe das mir hier jemand weiterhelfen kann. Ich arbeite noch nicht sehr lange mit Javascript. Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche. Wie löst man so was in Javascript
indem man im Funktionskörper, der ja nun mal die Klasse darstellt, eine enthaltene Methode aufruft ...
(ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)?
... oder dies halt direkt durchführt.
Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.
Der Code, der innerhalb der Funktion steht, wird ausgeführt. Oder anders gesagt: Die Klasse ist ihr eigener Konstruktor.
Cheatah
Danke,
jetzt wird es mir Klarer.
Gruß
Tobias
Hallo,
Klassen in der bekannten Form gibt es in JavaScript nicht. Es gibt sogenannte Prototypen. Die definiert man nicht formal, sondern sie bilden sich bei der Abarbeitung eines Konstruktors.
Ein Konstruktor ist eine einfache Funktion, die mit dem new-Schlüsselwort aufgerufen wird. In dieser Funktion zeigt this auf das neu erzeugte Objekt. Dem können dann im Laufe der Abarbeitung der Konstruktorfunktion Methoden und Eigenschaften zugewiesen werden. (Auch außerhalb dieser kann man den Prototyp bearbeiten, dafür hat diese Funktion eine Eigenschaft prototype.)
Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche.
Du kannst in JavaScript keine »Klasse« (wenn man es so nennen will) schreiben, ohne einen Konstruktor definiert zu haben... ;)
Wie löst man so was in Javascript (ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)? Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.
function konstruktor () {
this.methode = function () {
alert(this.eigenschaft);
};
this.eigenschaft = "wert";
}
var obj = new konstruktor();
obj.methode();
Mathias