Einer Variabeln eine Funktion zuweisen?

  • hallo leute,
    mich würde einfach mal interessieren, was es bringt folgendes zu machen:

    Code
    meinvariable = function() {
    // Irgendwelche Befehle
    }


    kann man dann etwa die funktion über die variable aufrufen oder was bringt das?

  • jop damit kannst du die über die variable aufrufen.
    kann manchmal gewisse vorteile bringen ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • (ich nehme an es ist Javascriptsyntax gemeint)

    Der Vorteil dieser Schreibweise ist eindeutig in verschiedenen Dingen liegent. Eine Funktion kannst du immer wiederverwenden , ist oft übersichtlicher und besonders in Javascript auch viel leichter zu handeln, hier wird z.B. die Methode automatisch aufgerufen und führt dazu, dass sie bei jedem Laden der Seite ausgeführt wird. (zumindest meine ich das, aber ich habe sooo wenig bedarf an js, da kann ich mich auch falsch erinnern)

    Dodo , mit Verlaub aber wenn du schon von "gewissen vorteilen" sprichst, benenne sie doch einfach, so viele sind's ja nun auch nicht ;)

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • also ich hab das nur mal in C++ verwendet

    Da habe ich ähnliche Funktionen, die bei einem unterschiedlichen spielstatus (menü, spiel, rangliste, ...), in ein array gepackt und dann damit drauf zugegriffen:

    Code
    display[gameStatus]();

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • ok, das habe ich verstanden, aber eine frage habe ich noch:

    Code
    function meinevariable() {
    				return;
    			}
    			meinevariable.konstante = 10;
    			meinevariable.funktiondavon = function() {
    				alert(meinevariable.konstante);
    			}
    
    			meinevariable.funktiondavon();


    das hier gibt im endeffekt eine meldung mit 10 aus. nur ich verstehe nicht genau, was ich da eigentlich mache. wenn ich oben die function nicht definieren dann funktioniert hier nix. kann mir das noch jemand pls erklären.

  • sieht echt nach JS aus.
    Naja mit JS-Funktionen hab ich mich noch nie beschäftigt
    aber ich schätze mal, dass man mit der funktion ein objekt erstellt und ohne dem kann man keine "untervariablen" setzen.
    also bevor meinevariable kein obkjekt ist, kannst du meinevariable.konstante oder ähnliches setzen.

    Bin mir da nicht so ganz sicher, aber das is die einzige plausible erklärung für mich ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • ich erkläre dir das wenn ich gleich vom notdienst der tierklinik wieder da bin.. evtl findeste ja schon ne kleine antwort in den javascript-basics in meiner signatur ;)
    nich über das design wundern.. is noch keins!
    war ne dummy-production...


    so jetzt zum edit:

    also ich hoff mal das ich des so richtig erklärt bekomm^^

    dadurch das du ein return-statement in der function meinevariable() hast, kannst du diese funktion nutzen wie eine ganz normale variable und damit auch ähnlich wie ein objekt (ich sag jetzt ähnlich weil ich mir nicht sicher bin obs wirklich ein objekt ist).
    das return bringt "dich" dann zum punkt nach der funktion und das script wird weiter durchlaufen.
    als nächstes wird die konstante deklariert und mit 10 initialisiert, die zu meinevariable() gehört..
    danach kommt direkt die definition einer weiteren funktion die ebenfalls zu meinevariable() gehört.
    in dieser funktion wird dann die konstante von meinevariable() in einem alert ausgegeben.

    die letzte zeile ruft dann die funktion der funktion meinevariable() auf und gibt damit dann die konstante von eben meinevariable() in einem alert auf dem bildschirm aus.


    sollte ich wider erwarten müll erklärt haben bitte ich um entsprechende verbesserungen ;)

  • achso, ja damit das mal geklärt ist, es ist javascript.
    nur eines ist so, es ist eigentlich egal was in der funktion drinnen steht, auch ohne dem return; funktioniert es.