1unitedpower: JavaScript Proposal: do-Expresssions

Beitrag lesen

problematische Seite

let q = 17;
let x = do {
   let y = { test: 1, pest: 2 };
   let z = { test: 7, pest: 8 };
   if (q == 17)
      function(i) { return z[i]; }
   else
      function(i) { return y[i]; }
};
alert(x('test'));

Hab ich da jetzt eine Closure geschnürt?

Zwei Closures sogar. Denn beide Funktionen binden Variablen aus dem umgebenden Geltungsbereich, das macht einen Closure auch schon aus. Das kennt man aus dem Matherunterricht vielleicht noch als Funktionsschar $$f_a(x) = ax$$. Hier ist das $$a$$ eine "Umgebungsvariable". In deinem Beispiel spielen z und y diese Rollen.

1 92

JavaScript Proposal: do-Expresssions

1unitedpower
  • javascript
  1. 1
    Orlok
    1. 0
      Gunnar Bittersmann
      1. 0
        Christian Kruse
  2. -2
    pl
    1. 0
      pl
      1. 0
        Gunnar Bittersmann
        1. 0
          pl
          1. 0
            Gunnar Bittersmann
            1. 0
              Matthias Apsel
              • zu diesem forum
          2. 0
            dedlfix
            1. 0
              pl
              1. 0
                Tabellenkalk
                • zu diesem forum
    2. 0
      Gunnar Bittersmann
      1. 0
        pl
        1. 0
          Gunnar Bittersmann
          1. -1
            pl
  3. 0
    dedlfix
    1. 0
      1unitedpower
      1. 0
        dedlfix
        1. 0
          1unitedpower
          1. 0
            1unitedpower
        2. 0
          Gunnar Bittersmann
          • sprache
          1. 0
            Gunnar Bittersmann
            • musik
            • sprache
            1. 0
              pl
          2. 0
            dedlfix
    2. 0
      Rolf B
      1. 0
        1unitedpower
        1. 0
          Christian Kruse
    3. 0
      pl
      1. 0
        dedlfix
        1. 0
          pl
          1. 0
            dedlfix
            1. 0
              pl
          2. 0
            Tabellenkalk
            • sonstiges
            1. -2
              pl
              1. 0
                Schnabeltier
                1. 0
                  pl
                  1. 0
                    Schnabeltier
                  2. 0
                    1unitedpower
                    1. 0
                      JürgenB
                      1. 0
                        MudGuard
          3. 2
            1unitedpower
            1. 0
              pl
              1. 0
                1unitedpower
                1. -2
                  pl
                  1. 0
                    1unitedpower
                    1. 0
                      pl
                2. 0
                  Matthias Apsel
                  1. -1
                    pl
                    • zu diesem forum
                    1. 0
                      Matthias Apsel
                      1. 0
                        pl
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            Tabellenkalk
                    2. 0
                      Tabellenkalk
                  2. 0
                    1unitedpower
            2. 0
              Christian Kruse
              • programmiertechnik
              1. 0
                JürgenB
                1. 0
                  Christian Kruse
                2. 1
                  Tabellenkalk
                  1. 0
                    JürgenB
                    1. 0
                      Tabellenkalk
                  2. 1
                    dedlfix
                    1. 0
                      Tabellenkalk
                    2. 0
                      Christian Kruse
              2. 0
                MudGuard
                • menschelei
                1. 0
                  Christian Kruse
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Christian Kruse
        2. 0
          Christian Kruse
          1. 0
            dedlfix
            1. 0
              Christian Kruse
              1. 0
                dedlfix
                1. 0
                  Christian Kruse
                  1. 0
                    dedlfix
                    1. 0
                      Christian Kruse
                      1. 0
                        JürgenB
                      2. 1
                        MudGuard
                        1. 0
                          Rolf B
                          1. 0
                            MudGuard
                            1. 0
                              Rolf B
                              1. 0
                                1unitedpower
                2. 0
                  1unitedpower
                  1. 0
                    Christian Kruse
                    1. 1
                      1unitedpower
                      1. 0
                        Christian Kruse
  4. 0
    pl
    1. 0
      1unitedpower
      1. 0
        pl
  5. 0
    Tabellenkalk
    1. 0
      pl
      1. 0
        Tabellenkalk