Stiki: Javascript fukntionen in funktionen

Hallo Forum ich wollte fragen ob meinen eine Javascript function in eine function packen kann? Und wie ich diese dann Auslager.

Also:

<script type="text/javascript">
function runden()
var zahl = 12345;

zahlgerundet = Math.round(zahl \*0.001);  
zahlgerundet = zahlgerundet \* 1000;  
alert(zahlgerundet);  

//nach der zeit soll dann eine zweite funktion kommen um meine code   kleiner zu halten
        function rechnen()

</script>

  1. Hi,

    Hallo Forum ich wollte fragen ob meinen eine Javascript function in eine function packen kann? Und wie ich diese dann Auslager.

    [...]

    //nach der zeit soll dann eine zweite funktion kommen um meine code   kleiner zu halten

    vielleicht solltest Du erst mal erklären, was Dein eigentliches Ziel ist.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Warte mal, Cheatah - ich empfange etwas in meiner Kristallkugel. Er hat eine Script-Funktion in seiner Seite und möchte sie in eine Script-Datei auslagern, die er dann überall mit dem <script src="datei"></script>-Tag einbinden kann...

      Gruß, LX

      --
      RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine ganz wunderbar. (...)
  2. Ich möchte eine function starten und in dieser weitere.

    1. kann das funktioniern?

    2. Und wenn man das machen kann wie muss das aussehen?

    function ein(){

    function zwei(){

    }

    }

    1. Ah, eine Präzisierung, wie praktisch:

      function a(){  
         // hier wird definiert, was Funktion a macht  
      }  
        
      a() // hier wird Funktion a aufgerufen  
        
      function b(){  
         // mache etwas anderes  
         a() // rufe Funktion a auf  
         // mache noch etwas anderes  
      }  
        
      b() // rufe Funktion b auf
      

      Aber es kommt noch mehr!

      • Closures

      Indem man eine Funktion innerhalb einer anderen definiert, hat man Zugriff auf deren Umgebungsvariablen:

      window.onload = function(o){ return function(){  
         if (o) o(); // rufe vorhergehende onload-Funktion auf  
         // mach noch was anderes  
      }}(window.onload)
      
      • Rekursion

      Eine Funktion kann auch sich selbst aufrufen:

      var a=function(wert, ergebnis){  
         // mache irgendwas  
         if (zwischenergebnis == ergebnis) {  
            zwischenergebnis = a(zwischenergebnis)  
         }  
         return zwischenergebnis;  
      }
      

      ...und vieles, vieles mehr!

      Gruß, LX

      --
      RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine ganz wunderbar. (...)
      1. Danke LX

        Das war genau was ich meinte xD

        Aber wieder eine frage dazu:

        Kann ich die funktion die in der funktion steht auch in einer anderen Datei definieren?
        Also auslagern?

        mfg stiki

        1. Wenn man Funktionen in eine andere JS-Datei auslagert, muss man lediglich sicherstellen, dass sie an anderer Stelle auch verfügbar ist - bei asynchron geladenen JavaScripten muss das bspw. nicht notwendigerweise auch der Fall sein (siehe async/defer im script-Tag).

          Gruß, LX

          --
          RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine ganz wunderbar. (...)
          1. Ich habe nun das problem wenn ich in meiner funktion die funktion starte das ich meinen wert nicht übergeben bekomme.

            function eins(){
            //hier mache ich was
                 zwei()
                  alert(zone);
            //hier mache ich was

            }

            extern steht in einer datei
            function zwei{
            if(plz == "22459"){ zone = 6 ;}
            if(plz == "22523"){ zone = 6 ;}
            if(plz == "22525"){ zone = 6 ;}
            if(plz == "22527"){ zone = 6 ;}
            if(plz == "22529"){ zone = 6 ;}
            if(plz == "22547"){ zone = 6 ;}
            if(plz == "22549"){ zone = 6 ;}
            }

            mit:

            <script type="text/javascript" src="vhv_zone.js"></script>

            habe ich das script eingebunden.

            das script vor dem zwei() funktioniert aber die alert ausgabe erscheint nicht.

            MfG Stiki

            1. Hi,

              Ich habe nun das problem wenn ich in meiner funktion die funktion starte das ich meinen wert nicht übergeben bekomme.

              Nein, das Problem ist eher, dass *du* ihn nicht explizit übergibst.

              das script vor dem zwei() funktioniert aber die alert ausgabe erscheint nicht.

              Dann schau in die JavaScript-Fehlerkonsole deines Browsers. Mache das bitte immer als allererstes, wenn es „nicht funzt“.

              Und dann beschäftige dich bitte (endlich mal) mit den elementaren Grundlagen von JavaScript - in Bezug auf dieses konkrete „Problem“ insb. mit dem Geltungsbereich von Variablen, und wie man Funktionen mit Parametern nutzt.

              MfG ChrisB

              --
              RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            2. Hallo,

              extern steht in einer datei ...

              ...ein Syntaxfehler:

              function zwei{

              Sagt dir das die Fehlerkonsole nicht? Ich meine die Fehlerkonsole. Die Fehlerkonsole, ja! Richtig gelesen: Die Fehlerkonsole eben.

              Das Forum ist nicht die Fehlerkonsole.

              Die Fehlerkonsole zeigt Fehler im Script. Du findest sie über ein Menü im Browser unter verschiedenen Namen... z.B. kann sie Fehlerkonsole heißen, oder auch ein bisschen anders, aber gemeint ist eigentlich immer die Fehlerkonsole... im Browser, nicht irgendwo im Internet, aber dort gibt's auch welche: Eine heißt z.B. JSlint. Es ist so eine Art Fehlerkonsole, aber die kann nur englisch und heißt eben nicht Fehlerkonsole, sondern JSlint. Trotzdem kann man sie brauchen als eine Art Fehlerkonsole, die aber nur Syntaxfehler findet und ein paar andere Problemchen in Scripts.

              Was du brauchst, ist aber eigentlich nur die Fehlerkonsole, ok?

              Gruß, Don P

              1. Ok danke, kannte sowas wie eine fehler konsole noch nicht -.-

                nun weis ich das meine variable plz, auf die ich in meinem externen script zugreifen möchte nicht definiert ist.

                normalerweise würde ich diese mit

                var plz=document.getElementById('plz').value;

                definieren aber das ist ja nicht das document.

                die plz wir von hand von den nutzern eingegeben also kann ich sie nicht von haus auf mit einem festen wert definieren.

                aber wenn ich danach suche wie man eine variable von einer externen datei aus laden kann finde ich nichts.

                1. Hi,

                  nun weis ich das meine variable plz, auf die ich in meinem externen script zugreifen möchte nicht definiert ist.

                  vermeide globale Variablen. Übergib der Funktion den gewünschten Wert als Argument.

                  aber wenn ich danach suche wie man eine variable von einer externen datei aus laden kann finde ich nichts.

                  Trenne Dich von dem Gedanken, externe JavaScript-Ressourcen hätten irgendwelche besonderen Bedeutungen oder Eigenarten. Sobald sie mittels <script src> in die Seite eingebunden sind, ist es so, als seien sie direkt im HTML-Code gestanden.

                  Cheatah

                  --
                  X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                  X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
    2. Mahlzeit Stiki,

      Ich möchte eine function starten und in dieser weitere.

      Möchtest Du <http://de.selfhtml.org/javascript/sprache/funktionen.htm#definieren@title=Funktionen definieren> oder <http://de.selfhtml.org/javascript/sprache/funktionen.htm#aufrufen@title=Funktionen aufrufen>?

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hallo,

    du kannst dir sogar von javascript-funktionen eine funktion zurückgeben lassen: http://forum.de.selfhtml.org/archiv/2011/5/t204981/#m1388909. das jslint-problem ist übrigens mittlerweile gefixed.

    Gruß

    jobo