Scar: Namesräume bei Klassennamen verwenden.

Hallo,

wenn ich eine klasse mit namensraum nach schema 'Domain.Klassenname' erstellen will muss ich doch Domain.Klassenname = function() { ... }  schreiben oder?

wenn ich nun aber new Domain.Klassenname(); aufrufe meckert er, dass Domain nicht existiert. wie müsste ich es denn richtig machen? :-/

grüße Chris

  1. Hallo,

    wenn ich eine klasse mit namensraum nach schema 'Domain.Klassenname' erstellen will muss ich doch Domain.Klassenname = function() { ... }  schreiben oder?

    "Domain" wäre in diesem Fall ein Objekt und "Klassenname" eine Methodes dieses Objekts.

    wenn ich nun aber new Domain.Klassenname(); aufrufe meckert er, dass Domain nicht existiert. wie müsste ich es denn richtig machen? :-/

    vielleicht hilft die dieser Artikel weiter:
    [http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/]

    Grüße
    Thomas

  2. Hallo,

    wenn ich eine klasse mit namensraum nach schema 'Domain.Klassenname' erstellen will muss ich doch Domain.Klassenname = function() { ... }  schreiben oder?

    Domain muss natürlich ein existierendes Object sein. (So etwas wie Namensräume gibt es nicht direkt in ECMAScript. Man kann Konstruktorfunktionen allerdings an Objekte pappen.)

    var Domain = {};
    Domain.Konstruktor = function () {};
    var instanz = new Domain.Konstruktor();
    alert(instanz);

    wenn ich nun aber new Domain.Klassenname(); aufrufe meckert er, dass Domain nicht existiert.

    Da hast du doch schon den Fehler.

    wie müsste ich es denn richtig machen? :-/

    Dafür sorgen, dass Domain existiert. ;)

    Mathias

    1. danke an euch beide,

      wenn ich das Objekt vorher erstelle klappts dann auch. ist zwar eigentlich nicht so ganz.. das was ich wollte, macht abe nix, klappt und passt :)

      grüße Chris