Der Martin: problem

Beitrag lesen

Hi,

$(function() {

$("#ul1 > li").click(function(li) {
  var url = $(li).find("a").attr("href");
  document.window.location.href = url;
});
});


>   
> Wie nennt man diese Schreibweise einer Funktion?  
  
Immediately Invoked Function Expression (IIFE), hier die jQuery-Notation davon.  
  

> Was ist der Unterschied zwischen  
>   
> `function whatever() {}`{:.language-javascript}  
>   
> und  
>   
> `$(function() {});`{:.language-javascript}  
  
... und der Variante ohne jQuery  
  
   `(function() {}) ();`{:.language-javascript}  
  
Beispiel 1 definiert eine Funktion mit einem Namen, die durch Angabe ihres Namens und eines Klammernpaares (ggf. mit Parameterliste) bei Bedarf aufgerufen wird. Beispiel 2 und 3 definieren eine anonyme (namenlose) Funktion, die im jQuery-Fall wegen des umschließenden $(), im anderen Fall durch die angehängten Funktionsklammern sofort nach der Deklaration aufgerufen wird.  
  
Vom Kontrollfluss her verhält sich so eine IIFE also genauso, als stünde der Code des Funktionsrumpfes direkt im Script. Der Vorteil ist jedoch, dass die IIFE durch die Kapselung in eine Funktion einen eigenen Namensraum hat und lokale Veriablen verwenden kann.  
  

> Wann bringt es Vorteile, Funktionen so zu schreiben?  
  
Wenn man globale Variablen um jeden Preis vermeiden möchte, etwa weil sie mit anderen Scripten kollidieren könnten.  
  
Ciao,  
 Martin  

-- 
Gibst du dem Opi Opium, haut Opium den Opi um.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
0 49

problem

Nightloewe
  • javascript
  1. 0
    Klawischnigg
    1. 0
      Jeena Paradies
  2. 0
    Jeena Paradies
    1. 0
      Malcolm Beck´s
      1. 0
        Der Martin
        1. 0
          Malcolm Beck´s
          1. 0
            Der Martin
            1. 0
              Malcolm Beck´s
              1. 0
                Der Martin
                1. 0
                  Malcolm Beck´s
                  1. 0
                    Der Martin
                    1. 0
                      Malcolm Beck´s
        2. 0
          molily
      2. 7
        1UnitedPower
        1. 0

          Korrektur am Codebeispiel

          1UnitedPower
        2. 0
          Malcolm Beck´s
          1. 0
            1UnitedPower
            1. 0
              Malcolm Beck´s
              1. 0
                1UnitedPower
                1. 0

                  JQuery, Funktionen und Anonyme Funktionen

                  Malcolm Beck´s
                  1. 0
                    1UnitedPower
                    1. 0
                      Malcolm Beck´s
                      1. 0
                        1UnitedPower
                        1. 0
                          Malcolm Beck´s
                    2. 0
                      Der Martin
                      1. 0
                        1UnitedPower
                      2. 0
                        Malcolm Beck´s
                        1. 0
                          Der Martin
                          1. 0
                            Malcolm Beck´s
        3. 0
          molily
        4. 3
          molily
          1. 0
            1UnitedPower
      3. 0
        Klawischnigg
      4. 0

        Gibt es Benchmark-Tools für Seiten mit Javascript?

        Malcolm Beck´s
  3. 0
    MudGuard
  4. 0
    Nightloewe
  5. 1

    Sinnvoller Titel, Problembeschreibung

    Der Martin
    • zu diesem forum
    1. 0
      Gunnar Bittersmann
      1. 0
        Der Martin
        1. 0
          Gunnar Bittersmann
          1. 0
            misterunknown
            1. 0
              Gunnar Bittersmann
              1. 0
                misterunknown
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    Matthias Apsel
                    1. 0
                      Gunnar Bittersmann
                  2. 0
                    misterunknown
                    1. 0
                      Gunnar Bittersmann