Christian Kruse: Autovervollständigung

Beitrag lesen

Hallo RR,

  • a) Was passiert mit der anonymen Funktion, wenn man den anschließenden Operator nicht setzt?

Der Garbage Collector kommt vorbei und räumt sie weg.

  • b) Was passiert mit der anonymen Funktion, wenn man den anschließenden Operator nicht setzt, aber vorher eine globale Variable 'element' erstellt?

Der Garbage Collector kommt vorbei und räumt sie weg… äh, ich verstehe die Frage nicht. Der globale Scope ist doch unabhängig von dem Funktionsscope. Die „globale” Variable hat nichts mit der inneren zu tun.

  • c) Was passiert mit der anonymen Funktion, wenn man vorher eine globale Variable 'element' erstellt hat, aber den anschließenden Operator (the_element) trotzdem angibt?

Der Operator ist (), das the_element war nur ein Platzhalter für das Argument; das könnte z. B. var the_element = document.getElementById("autocomplete-input"); sein.

Ansonsten: wie gesagt, durch die beiden unterschiedlichen Scopes ist die innere, lokale Variable nicht nach außen sichtbar und „shadow”ed die äußere Variable. Will heißen: im Funktions-Körper ist die globale Variable nur noch über window.element erreichbar, über element nicht mehr:

element = "foo";
(function(element) {
  console.log(window.element);
  console.log(element);
})("bar");

Ausgabe: foo, bar.

Das nennt man „shadowing” und ist häufig ein Hinweis auf einen Bug, weshalb viele Compiler und Interpreter dafür Warnings generieren; in diesem Fall ist das aber erwünscht und man nutzt den Effekt absichtlich zur Kapselung.

LG,
CK

0 49

Autovervollständigung

hmm
  • datenbank
  • html
  • javascript
  1. 0
    dedlfix
  2. 2
    Christian Kruse
    1. 0
      Robert R.
      • javascript
      1. 0
        Christian Kruse
        1. 0
          Robert R.
          1. 2
            Christian Kruse
            1. 0
              Robert R.
              1. 0
                Christian Kruse
            2. 0
              dedlfix
            3. 0
              Matthias Apsel
              1. 0
                Christian Kruse
                1. 0
                  Matthias Apsel
                  1. 0
                    RR
                    • javascript
                    • selfhtml-wiki
                    1. 0
                      dedlfix
                    2. 0
                      Christian Kruse
                      1. 0
                        RR
                        1. 0
                          Christian Kruse
                          1. 0
                            RR
                            1. 0
                              Christian Kruse
                              1. 0
                                RR
                                1. 0
                                  Christian Kruse
                                  1. 2
                                    Rolf b
                                    1. 1
                                      Christian Kruse
                                      1. 0
                                        Matthias Apsel
                                      2. 0
                                        Rolf b
                                        1. 0
                                          Christian Kruse
                                          1. 0
                                            Rolf b
                                            1. 0
                                              Christian Kruse
                                              1. 0
                                                JürgenB
                                                1. 0
                                                  Christian Kruse
                                                  1. 0
                                                    JürgenB
                                                    1. 0
                                                      Gunnar Bittersmann
                                                      • mobile
                                                      1. 0
                                                        Christian Kruse
                                                        1. 0
                                                          JürgenB
                                                      2. 0
                                                        Rolf b
                                                        1. 0
                                                          Christian Kruse
                                                          • humor
                                                          • menschelei
                                                          1. 0
                                                            Rolf b
                                                            • humor
                                                            • menschelei
                                                            • sport
                                                            1. 0
                                                              JürgenB
                                                              1. 0
                                                                Gunnar Bittersmann
                                                                1. 0
                                                                  JürgenB
                                                            2. 0
                                                              Christian Kruse
  3. 0
    Martl
    1. 0
      Camping_RIDER
      1. 0
        Martl
  4. 0
    Gunnar Bittersmann
    1. 0
      hmm
    2. 0
      Camping_RIDER
  5. 0
    hmm