Don P: Function.prototype.begetObject

Beitrag lesen

Hallo,

ich habe ihn gerade angeschrieben dass er lieber Function.prototype.begetObject schreiben solle, um diese Probleme zu umgehen.

Wen? Gott? Ach nee, wahrscheinlich den JavaScript-Halbgott Douglas Crockford ;-).

In JSLint propagiert er übrigens, dass man for (in) immer mit Vorsicht und im Zweifelsfalle mit hasOwnProperty nutzen solle, um solchen Problemen auszuweichen:

for (name in object) if (object.hasOwnProperty(name)) {
    ....
}

  
Ja, das ist natürlich die unausweichliche Konsequenz, wenn man Object erweitert. Das ist auch der Grund, warum ich hier nicht die Object.protoype.begetobject-Variante erwähnt habe, weil mir das ziemlich riskant scheint. In meinen eigenen Scripts mache ich das zwar manchmal, aber die sind auch nicht zum Verteilen da.  
  

> <http://www.jslint.com/lint.html>  
>   
> aber mit Function hat er dieses Problem hier zumindest nicht mehr!  
  
Dass man eine function überhaupt erweitern kann, habe ich zum ersten mal hier bei Struppi gesehen. Wäre von selber nicht auf die Idee gekommen, das zu machen. Dachte immer Function ist Function, und Object ist Object. Sogar typeof unterscheidet sie ganz brav. Die Grenze scheint aber eher fließend zu sein oder gar nicht zu existieren...  
  
Gruß, Don P  

0 67

Vererbungshierarchie ?!?

Kurt Z
  • javascript
  1. 0
    Struppi
    1. 0
      molily
    2. 0
      Don P
      1. 0
        Kurt Z
        1. 0
          Struppi
          1. 0
            Don P
            1. 0
              Struppi
              1. 0
                Don P
                1. 0
                  Struppi
                  1. 0
                    Don P
                    1. 0
                      Struppi
                      1. 0
                        Don P
                        1. 0
                          Struppi
                          1. 0
                            Don P
                      2. 0
                        Kurt Z
                        1. 0
                          Struppi
                          1. 0
                            Kurt Z
                            1. 0
                              Struppi
                              1. 0
                                Kurt Z
                                1. 0
                                  Struppi
                                  1. 0
                                    Kurt Z
                                    1. 0
                                      LanX²
                                    2. 0
                                      Struppi
                                      1. 0
                                        Kurt Z
                                        1. 0
                                          Kurt Z
                                        2. 0
                                          Struppi
                                          1. 0
                                            Kurt Z
                              2. 0
                                Don P
              2. 0
                LanX²
                1. 0

                  Function.prototype.begetObject

                  LanX²
                  1. 0
                    Don P
                    1. 0

                      Knobelaufgabe

                      LanX²
                      1. 0
                        Don P
                    2. 0
                      molily
                      1. 0
                        Kurt Z
                        1. 0

                          Please beget it!

                          LanX²
                          1. 0
                            Kurt Z
                          2. 0
                            Don P
                            1. 0
                              LanX²
                              1. 0
                                Don P
                              2. 0

                                Iterator

                                KurtZ
                                1. 0
                                  LanX
                      2. 0
                        Don P
        2. 0

          new Object(x) statt object(x)

          Kurt Z
          1. 0
            Murphy
            1. 0
              Kurt Z
              1. 0
                Don P
              2. 0
                Murphy
                1. 0
                  Kurt Z
                2. 0
                  molily
  2. 0
    LanX²
  3. 0
    molily
  4. 3

    __proto__ chain

    LanX²
    1. 0
      LanX²
      1. 0
        Kurt Z
    2. 1
      molily
  5. 0

    JS-Version?

    Kurt Z
    1. 0
      Kurt Z
      1. 0
        molily
        1. 0
          molily
    2. 0
      molily
      1. 0
        Kurt Z
        1. 0
          molily
          1. 0
            Kurt Z
  6. 0

    VIELEN DANK!!!

    Kurt Z
    1. 0
      Struppi