Don P: undefined als Wert einer Objekt-Eigenschaft erlaubt?

Beitrag lesen

Hallo,

var o = { p : undefined };

"p" in o // ergibt true
"x" in o // ergibt false


>   
> Absichtlich würde ich deshalb nicht mit undefined-Werten arbeiten.  
  
Ich schon. Gerade die Tatsache `("p" in o && !o["p"]) === true`{:.language-javascript} nütze ich manchmal aus:  
Es werden Eigenschaften/Methoden von o angelegt, die manchmal bewußt mit undefined initialisiert sind.  
Das bedeutet eben, dass zwar sie \*an dieser Stelle nicht definiert\* sind, aber der Wert von woanders geholt werden soll (z.B. von einem Default-Objekt d).  
Dazu werden etwa mit  
`for (var p in o) { myObj = o[p]||d[p]; }`{:.language-javascript}  
die Eigenschaften durchlaufen und zugeordnet. Natürlich würde das auch mit null funktionieren...  
  

> Wenn etwas gesetzt ist, aber keinen Wert hat, dann sollte man null verwenden.  

...aber null steht ja üblicherweise für ein nicht vorhandenes \*Objekt\*.  
undefined dagegen ist allgemeiner, und steht für irgend etwas nicht gesetztes.  
  
Gruß, Don P  

0 56

undefined als Wert einer Objekt-Eigenschaft erlaubt?

LanX!
  • javascript
  1. 6
    molily
    1. 0
      LanX!
      1. 0
        Beat
        1. 0
          LanX!
          1. 0
            Beat
      2. 0
        Cheatah
        1. 0
          LanX!
          1. 0
            molily
            1. 0
              Struppi
              1. 0
                LanX!
            2. 0
              LanX!
              1. 0

                null als Rückgabewert in ECMAscript

                Tim Tepaße
                1. 0
                  LanX!
      3. 0
        molily
        1. 0
          LanX!
          1. 0
            molily
        2. 0
          Struppi
      4. 0
        EKKi
        1. 0
          LanX!
    2. 0
      Don P
      1. 0
        molily
        1. 0
          LanX!
        2. 0
          Struppi
          1. 0
            molily
            1. 0
              LanX!
              1. 0
                molily
                1. 0
                  LanX!
                2. 0
                  Struppi
            2. 0
              Struppi
              1. 0
                LanX!
                1. 0
                  Struppi
                  1. 0
                    LanX!
                  2. 0
                    LanX!
                    1. 0
                      LanX!
      2. 0
        LanX!
        1. 0
          LanX!
          1. 0
            Don P
  2. 0
    Struppi
    1. 0
      Kai345
      1. 0
        Kai345
        1. 0
          Struppi
          1. 0
            Kai345
    2. 0
      LanX!
      1. 0
        Struppi
        1. 0
          LanX!
          1. 0
            Struppi
            1. 0
              LanX!
              1. 0
                Struppi
                1. 0
                  LanX!
                  1. 0
                    LanX!
                  2. 0
                    Kai345
                    1. 0
                      LanX!
                      1. 0
                        at
                        1. 0
                          LanX!
    3. 0
      ChrisB