• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrdimensionales objekt

Status
Für weitere Antworten geschlossen.

vit_o

Neues Mitglied
Weiß jemand vllt wie man ein benutzerdefiniertes Objekt in einem anderen Objekt erstellt? Also vom Sinn her soll das hier rauskommen:
Code:
klasse(){
   this.untergeordneteKlasse   = function(){
        this.this.funktionDerUnterklasse = function(){
          //Quelltext...
         }
   }
}
Das funktioniert aber natürlich nicht.
Danke schon mal im Voraus!
 
Werbung:
Undurchdacht (a. k. a. kurz probiert und es klappte):

Code:
<script type="text/javascript">
Unterklasse = function()
{
    this.test = function()
    {
        alert('Unterklasse');
    }
}

Klasse = function()
{
    this.unterklasse = new Unterklasse();

    this.test = function()
    {
        alert('Klasse');
        this.unterklasse.test();
    }
}

var obj = new Klasse();
obj.test();
</script>
 
Werbung:
ich dachte eher an eine schreibweise mit der ich die klasse innerhalb der klasse klasse deklarieren kann, aber wenn das nicht geht muss ich wohl so..
trotzdem danke
 
Code:
function Klasse () {}

Klasse.prototype.Unterklasse = function Unterklasse() {

}

Unterklasse.prototype = (function() {
    function private() {}

    function protected() {}

    return {
        public : function puplic () { },
        protected : protected
    };
})();
Prototyping ist etwas anderes als echte Klassen. Objekt ist in JavaScript Objekt :)
 
JS bietet viele Möglichkeiten Objekte zu deklarieren. Wenn du vielleicht genauer beschreibst was du möchtest oder wo dein Problem liegt, könnte man dir auch konkreter helfen.
 
Werbung:
ich wollte die klasse nur innerhalb der übergeordneten klasse deklarieren und nicht nacheinander wie im beispiel von crash. aber anscheinend gehts nicht und dann kann ich das auch nacheinander machen. wäre nur logischer, weil es beim initialisieren ja auch ein unterobjekt des großen objekts wird.
 
ich wollte die klasse nur innerhalb der übergeordneten klasse deklarieren und nicht nacheinander wie im beispiel von crash. aber anscheinend gehts nicht und dann kann ich das auch nacheinander machen. wäre nur logischer, weil es beim initialisieren ja auch ein unterobjekt des großen objekts wird.
Was bedeutet denn deklarieren für dich? Du kannst mit JS wie gesagt alles machen.
 
ich dachte, das nennt man so, wenn ich schreibe wie die klasse aussehen soll also zb: function bsp(){//...} und initialisieren ist dann doch das: var xy=new bsp();
 
Werbung:
Naja, du musst aber eine Klasse nicht deklarieren, du kannst in JS auch zur Laufzeit Klassen erzeugen oder bilden. Du kannst mit Factory Funktionen oder Klassen neue Objekte erzeugen. Du kannst mit prototype jede x-beliebige Klasse um jede x-beliebige Funktion erweitern ... usw.

Wie gesagt mit JS ist alles möglich. Mir ist aber nicht klar, was du jetzt konkret erreichen möchtest.
 
Nachtrag: Kann es sein, dass du einfach einen private Konstruktor in der Klasse definieren willst? Auch das ist möglich.

Um das Beispiel von mermshaus zu benutzen, z.b. so:
Code:
<script type="text/javascript">
var Klasse = function() {
   var Unterklasse = function(){
          this.test = function(){
            alert('Unterklasse');
          }
     };
  this.unterklasse = new Unterklasse();
   this.test = function() {
           alert('Klasse');
           this.unterklasse.test();
    };
}
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben