[JavaScript] Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Murdoc, 1. Januar 2008 .

  1. 1. Januar 2008
    Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    moin, mein erstes posting 2008^^

    ich kanns mir grad ned erklären, hatte sowas zuvor noch nie^^

    folgendes...
    ich hab eine klasse in js und nehm ne instanz davon mit:
    Code:
    var k1 = new meineKlasse();
    klappt ohne probleme, doch wenn ich ne zweite instanz in eine andere var speicher mit:
    Code:
    var k2 = new meineKlasse();
    dann sollte ich zweimal die klasse "meineKlasse" in zwei objekten gespeichert haben... was aber irgendwie ned der fall is, denn:
    Code:
    k1.eigenschaft = 1;
    alert(k2.eigenschaft); //1
    hab ich grad nen denkfehler? ich ging eigentlich davon aus dass das schlüsselwort "new" mir eine instanz liefert und ned nen zeiger auf das objekt selber.

    so in etwa schaut die klasse aus:
    Code:
    var meineKlasse = Class.create({
     eigenschaft: 0
    });
    ich habs auch schon ohne das prototype framework probiert ... selbes ergebnis

    mach ich was falsch oder ist das so gewollt (was ja blöd wär)
     
  2. 1. Januar 2008
    AW: Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    Du willst mit k1 den Wert setzen und mit k2 ausgeben, oder???

    Das geht jedenfalls net! Du erstellst ja immer ne neue Klasse mit leeren Werten...

    Hoffe ich hab verstanden was du meinst
     
  3. 1. Januar 2008
    AW: Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    und genau da is das problem, es geht nämlich.

    //grad noch ein wenig rumprobiert, also ich hab doch keinen denkfehler... "new" verhält sich korrekt, aber in meinem fall eben nicht^^

    wie mir das grad aufn sack geht...
     
  4. 1. Januar 2008
    AW: Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    Wie verhält sich das denn jetzt?
     
  5. 1. Januar 2008
    AW: Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    die beiden objekte teilen sich sozusagen die eigenschaft
    wenn ichs im IRC richtig verstanden habe ist das aber nur bei einer eigenschaft so, alle anderen scheinen zu funktionieren
     
  6. 1. Januar 2008
    AW: Problem mit Klasse, "new" nicht vergleichbar mit php-oop?

    richtig und das hatte sich auch ned lösen lassen. praktisch ein bug von js!

    naja ich hab die klasse aufgelöst und den beien vars das objekt einzeln per json zugeteilt, anders ging es nicht.

    was genau war denn:

    ich hatte eine klasse (nennen wir se mal "mk")
    in dieser klasse waren verschiedene eigenschaften und methoden. die relevanten zwei wären:
    - fileItems (array)
    - addItem()

    in fileItems wurden als array die ganzen files gespeichert. zb 'filea', 'fileb' ... usw
    mit der methode addItem('name') würde ein neues item an fileItems mittels .push() angehängt.

    das dumme war aber das die erste genommene instanz von der klasse "mk" alle anderen instanzen sozusagen "mundtot" gemacht hat.

    beispiel:
    var a = new mk(); //instanz von klasse "mk"
    var b = new mk(); //auch eine instanz von "mk"

    die beiden vars a und b können auch beliebig unbenannt werden.

    beim aufruf von a.addItem('name'); würe man denken das in a.fileItems[0] "name" stehn würde, stimmt auch, doch gleichzeitig stand nun auch in b.fileItems[0] "name". warum weiß niemand genau.

    beim aufruf von b.addItem('name'); würde auch gleichzeitig in a ein neues item aufgenommen.

    wer des rätsels lösung kenn darf sie gerne posten
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.