JS Klasse "verliert" Werte

  • Ich wundere mich gerade warum die Werte einer Klasse weg sind.


    Ablauf ect:


    wenn jetzt callback() aufgerufen wird, dann bin ich ja wieder in der Klasse_1. Aber die ist "leer".
    'wert' ist undefined, aber warum?


  • funst doch einiger maßen
    ich hätte eig gedacht das da ne endlos schleife raus kommt aber anscheinend nicht

  • das war ja nur ein bsp und ich hab mich sogar vertipp:
    muss AndereKlasse.andereFunc(Klasse_1.methode) sein denk ich.


    Knn hier nicht die ganzen klassen posten - sind zu umfangreich geworden.
    Aber fakt ist: wenn AndereKlasse das callback aufruft (also Klasse_1.methode()), dann ist var wert "undefined" =(

  • Witzbold :D
    Sind zuviele. ~10 val und 3 arrays :D



    EDIT: ich ahne was mir hier passiert ist:

    Zitat von http://www.peterkropff.de/site/javascript/grundlagen_oop.htm


    Objektgebundenheit


    Bei dieser Vorgehensweise ist sowohl die Eigenschaft als auch die Methode an das erzeugte Objekt gebunden. Erzeugt man ein neues Objekt unter demselben Namen, so werden alle bereits existierenden Eigenschaften und Methoden ins Nirwana befördert und euch haut es eine saftige Fehlermeldung um die Ohren.

  • hier mal ein ordentliches beispiel:


    @ alert("in Klasse_1:\r\nKlasse_1 in receive angekommen und bsp-wert this.eigenschaft == "+this.eigenschaft);
    kommt undefined oO?
    raff ich net

  • jo kannst dir ja mit console log immer this ausgeben lassen.





    eine möglichkeit wie es geht...


    ist natürlich auch nicht so super
    aber man üergibt ja sonst auch ganze objecte und nicht nur einzelne functionen oder?


    ansonsten mh wüste auch net

  • Ha! Geht! =)
    Hast recht - muss ja nicht die function rein. Bei mir hatte JS immer die "falsche" Klasse als Referenz genommen.
    Hab das Ganze gleich mal in ne func callback() gepackt =)


    Das schöne an call() ist, dass man die Referenz mitgeben kann.
    Also prüft callback() einfach:

    Code
    wenn FUNCTION dann rufe auf FUNCTION und
        wenn KLASSE dann gib mit referenz KLASSE und
            wenn PARAMETER dann gib mit PARAMETER


    :D


    EDIT: apply funktioniert besser, da man die werte (para) als array [array,val,'ect'] mitgeben kann:

    JavaScript
    function callback(cl,meth,para){
        return (meth)?meth.apply((cl)?cl:null,(para)?[para]:null):false;
    }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!