dedlfix: FromData toString und Kontextwechsel

Beitrag lesen

Tach!

Fehlt hier nicht irgendwo ein Punkt, z.B. Container().Container.__data.append('value')?

Nein, das hat gemäß den nachlesbaren Regel so gestimmt.

Wo sind die denn nachzulesen?

Im Handbuch, und der Wikipedia. Ich hab nach dem gegebenen Stichwort name mangling gesucht.

Die Referenz ist konstant. OK, das ist ein Unterschied zu

Ich kann C und C++ nicht lesen. Dazu kann ich also nichts weiter sagen. Deswegen hier ein anderer Erklärungsversuch.

Bei Variablen muss man generell zwei Dinge trennen, die Verwaltungsstruktur und der eigentliche Inhalt. Das ist vielleicht nicht ganz korrekt für alle Programmiersprachen, aber als Modell vorgestellt, sollte die Erklärung passen. Variablen sind im Grunde genommen Verwaltungsstrukturen. Skalare/einfache Variablen haben ihren Inhalt mit an Bord in einem Feld dieser Verwaltungsstruktur. Das betrifft zum Beispiel Integer oder Boolean. Die haben eine übersichtlich kleine und feststehende Größe von wenigen Bytes. Bei komplexen Dingen hingegen wird der Inhalt anderenorts abgelegt und die Verwaltungsstruktur enthält lediglich einen Verweis auf diesen Inhalt. Die Verwaltungsstruktur bleibt in sich konstant, wenn sich dieser Verweis nicht ändert, also immer auf dieselbe Speicherstelle zeigt. Die Verwaltungsstruktur überwacht aber nicht den Inhalt am Ziel. Der kann sich beliebig ändern.

In diesem Modell zählen auch Strings zu den skalaren Typen, obwohl der Inhalt der Strings eigentlich aufgrund seiner unterschiedlichen Länge ebenfalls anderenorts abgelegt wird und die Verwaltungsstruktur nicht den Inhalt sondern eine Referenz verwaltet. Stringinhalte können sich trotzdem nicht einfach so ändern, denn Stringoperationen arbeiten üblicherweise nicht im für den String zugewiesenen Speicher, sondern das Ergebnis der Operation wird anderenorts neu angelegt und die Verwaltungsstruktur bekommt einen neuen Verweis zum Speichern. Das darf aber bei const nicht sein, und deshalb ändert sich auch bei konstanten Stringvariablen nie der Inhalt.

Wie ist das aber bei Objekten zu sehen? Bei streng typisierten Sprachen ändert sich zur Laufzeit nichts am Umfang der Eigenschaften, die ein Objekt hat. Die Eigenschaften sind ihrerseits wieder Verwaltungsstrukturen wie bei den Variablen. Diese liegen an festen Positionen im Speicherbereich des Objekts. Ob sie ihrerseits skalar sind oder referenzieren, ist egal, die Verwaltungsstruktur verbleibt immer am selben Ort. Ihr Inhalt kann sich ändern, das ist völlig unabhängig vom const oder nicht der Verwaltungsstruktur des Objekts. Die Eigenschaften können aber ihrerseits als readonly oder const gekennzeichnet sein (bei Javascript nicht, aber in anderen Sprachen) und unterliegen dann denselben Nicht-Änderungs-Regeln wie eigenständige Variablen.

Bei Sprachen wie Javascript, wenn zur Laufzeit Eigenschaften hinzukommen oder entfernt werden können, verändert sich auch nicht direkt das Objekt. Es muss also auch nicht neuer Speicherplatz angefordert werden, der größer als der bisherige ist, und dann die Referenz in der Variable umgeschrieben werden. Stattdessen verwaltet man da eine Referenz auf eine Liste, in der die Eigenschaften verwaltet werden. Der Inhalt der Liste kann sich beliebig ändern. Somit bleibt also auch die Objekt-Variable an sich konstant, sie selbst hat keinen Bedarf, sich gegebenenfalls zu vergrößern, und kann deshalb immer am selben Speicherort liegen.

dedlfix.

0 184

Braucht noch wer jQuery?

Robert B.
  • javascript
  • jquery
  1. 1
    Rolf B
  2. 0
    Mitleser
    1. 0
      Robert B.
  3. 2
    klawischnigg
    1. 0
      Robert B.
    2. 1
      Henry
      1. 2
        Matthias Apsel
        • javascript
        1. 0
          Henry
          1. 1
            Robert B.
            1. 2
              JürgenB
      2. 0
        beatovich
        1. 1
          Henry
          • javascript
          • jquery
          • meinung
        2. 0
          Robert B.
          • javascript
          • jquery
          • menschelei
    3. 2
      pl
      1. 1
        klawischnigg
        1. 0
          pl
        2. 0
          marctrix
  4. 1
    JürgenB
  5. 7

    Ein gutes Wort für jQuery

    1unitedpower
    1. 0
      Rolf B
      1. 1
        1unitedpower
  6. 0
    pl
    1. 0
      dedlfix
      1. 0
        Christian Kruse
        1. 0
          dedlfix
          1. 0
            Christian Kruse
            1. 0
              dedlfix
              1. 0
                pl
                1. 0
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. 0
                        pl
                        1. 0
                          Christian Kruse
                        2. 0
                          MudGuard
                        3. 0
                          dedlfix
                          1. -2
                            pl
                          2. 0
                            pl
                            1. 0
                              Robert B.
                              • menschelei
                              1. -1
                                pl
                                1. 0
                                  Matthias Apsel
                                2. 0
                                  Robert B.
                                  1. 0
                                    pl
                                    1. 4
                                      Christian Kruse
                                    2. 0
                                      Robert B.
                                      1. -1
                                        pl
                                        1. 0
                                          Matthias Apsel
                                        2. 0
                                          Robert B.
                                          1. 0
                                            Matthias Apsel
                                          2. 0
                                            pl
                                            1. 0
                                              Matthias Apsel
                                            2. 0
                                              Robert B.
                                              1. 0
                                                pl
                                            3. 1
                                              dedlfix
                                              1. 0
                                                pl
                                                1. 2
                                                  dedlfix
                                                  1. 0
                                                    pl
                                                    1. 1
                                                      Matthias Apsel
                                                      1. -1
                                                        pl
                            2. 0
                              Matthias Apsel
                              • meinung
                            3. 2
                              dedlfix
                        4. 0
                          JürgenB
                          1. 0
                            pl
                            1. 0
                              JürgenB
                              1. 0
                                pl
                                1. 1
                                  JürgenB
                                  1. 0

                                    jquery vs modern JS

                                    pl
                                    1. 2
                                      JürgenB
                                      1. 0
                                        pl
                        5. 0
                          Robert B.
                          • browser
                          • javascript
                          • jquery
                          1. 0
                            beatovich
                            1. 0
                              Robert B.
                              1. 0
                                beatovich
                                1. 1
                                  dedlfix
                                  1. 0
                                    beatovich
                                    1. 0
                                      dedlfix
                      2. 0
                        Matthias Apsel
                        1. 0
                          dedlfix
                          1. 0
                            Matthias Apsel
                            1. 0
                              dedlfix
          2. 0
            pl
      2. 0
        pl
        1. 0
          dedlfix
          1. 0
            pl
            1. 1
              dedlfix
              1. 0

                FromData toString und Kontextwechsel

                pl
                1. 4
                  dedlfix
                  1. 0
                    pl
                    1. 2
                      dedlfix
                      1. -1
                        pl
                        1. 1
                          dedlfix
                          1. 0
                            pl
                    2. 0

                      Typisch für OOP Overload

                      pl
                      1. 0
                        pl
                        • javascript
                        • jquery
                        • perl
                2. 2
                  Orlok
                  • programmiertechnik
                  1. 0
                    pl
                    1. 0
                      Matthias Apsel
                  2. 0
                    Robert B.
                    • javascript
                    • programmiertechnik
                    • python
                    1. 0
                      dedlfix
                      1. 0
                        Robert B.
                        1. 1
                          Christian Kruse
                        2. 1
                          dedlfix
                          1. 0
                            Robert B.
                            • menschelei
                            1. 0
                              dedlfix
                              1. 0
                                Robert B.
                                • menschelei
                                • python
                                1. 0
                                  dedlfix
                          2. 0
                            Robert B.
                            • c++
                            • javascript
                            • programmiertechnik
                            1. 2
                              Orlok
                          3. 0
                            Klaus Mennward
                            1. 0
                              dedlfix
                              1. 0
                                dedlfix
                            2. 0
                              Robert B.
                              • programmiertechnik
                              • python
                              1. 1
                                Rolf B
    2. 0
      pl
      1. 2
        dedlfix
        1. 0
          pl
          1. 4
            dedlfix
            1. 0
              pl
              1. 0
                dedlfix
                1. -1
                  pl
                  1. 0
                    dedlfix
                    1. 0
                      pl
                      1. 0
                        dedlfix
                        1. -1
                          pl
                          1. 3
                            Christian Kruse
                          2. 6
                            dedlfix
                            1. -3
                              pl
                              1. 4
                                dedlfix
                                1. -2
                                  pl
                                  1. 0
                                    dedlfix
                                    1. -1
                                      pl
                                      1. 2
                                        dedlfix
                                        1. 0
                                          pl
                                          1. 1
                                            Robert B.
                                            • menschelei
                                            • zu diesem forum
                                            1. 0
                                              pl
                                          2. 2
                                            dedlfix
                                            1. -2
                                              pl
                                              1. 2
                                                dedlfix
                                                1. -2
                                                  pl
                                                  1. 2
                                                    dedlfix
                                                    1. 1
                                                      Rolf B
                                                      1. 0
                                                        Matthias Apsel
                                                        1. 0
                                                          Christian Kruse
                                                          1. 0
                                                            Matthias Apsel
                                                            • menschelei
                                                      2. 0
                                                        pl
                                                        1. 3
                                                          dedlfix
                                                    2. 0

                                                      Framework und serialize

                                                      pl
                                                      1. 2
                                                        dedlfix
                                                        1. -1

                                                          Schlechter Programmierstil

                                                          pl
                                                  2. 3
                                                    Christian Kruse
                                            2. -1

                                              Datenstrukturen aus Formulareingaben

                                              pl
                                              1. 2
                                                dedlfix
                                                1. 0
                                                  pl
                                                  1. 0
                                                    dedlfix
                                                    1. -1
                                                      pl
                                                      1. 1
                                                        dedlfix
                                                        1. -2
                                                          pl
                                                          1. 0
                                                            beatovich
                                                            1. -1
                                                              pl
                                                          2. 1
                                                            Mitleser
                                                            1. 1
                                                              JürgenB
                                                              1. 0
                                                                pl
                                                            2. -1
                                                              pl
                                                              1. 2
                                                                Matthias Apsel
                                                                • meinung
                                                                • sonstiges
                                                                1. 0
                                                                  pl
                                                                  1. 0
                                                                    Matthias Apsel
                                                                    1. -1
                                                                      pl
                                                                    2. -1
                                                                      pl
                                                                      1. 0
                                                                        Matthias Apsel
                                                                        1. -1
                                                                          pl
                                                                          1. 1
                                                                            Christian Kruse
                                                          3. 3
                                                            dedlfix
                                                            1. -1
                                                              pl
                                                              1. 1
                                                                dedlfix
                                                                1. 0
                                                                  pl
                                                                  1. 1
                                                                    dedlfix
                                                                    1. -1
                                                                      pl
                                                          4. 1
                                                            Robert B.
                                                            • menschelei
                                                        2. 0
                                                          Matthias Apsel
                                                          • menschelei
                                              2. 0
                                                pl
                                              3. 0
                                                pl
  7. 1
    klawischnigg
    1. 0
      Robert B.
  8. 1
    marctrix
    • css
    • sass