Kurt Z: new Object(x) statt object(x)

Beitrag lesen

Threaddrift von http://board.perl-community.de/thread/11513/startWithMessage=36

Murphy schrieb:

Nachtrag zum Klonen von Objekten: Auch wenn der ECMA-262 Standard das nicht zwingend vorschreibt, habe ich festgestellt, dass sowohl SpiderMonkey (JavaScript-Engine von Firefox und Co) als auch JavaScriptCore (JavaScript-Engine von Konqueror, Safari und Co) das folgende Idiom zum Klonen eines Objektes unterstützen:

  

> var clone = new Object(original);  

Dieser Aufruf hat fast denselben Effekt wie die weiter oben vorgeschlagene clone-Methode. Der Unterschied ist, dass er für die statischen eingebauten Objekte (wie Object) keinen Klon anfertigt, sondern das Objekt selbst wieder zurückgibt und ferner dass er auch mit Eingabewerten klar kommt, die Arrays, Strings, Zahlen, null oder undef sind. Eigentlich ein sehr sinnvolles Verhalten :-)

Hi Murphy,

ganz kann ichs doch nicht nachvollziehen, bei mir liefert y=new Object(x) immer einen Alias auf x statt eines Kindes,

  
k1=function (){this.iname="1"};  
k1.prototype={kname:"k1"};  
k2= new Object(k1);  
  
i1=new k1();  
i2=new Object(i1);  
  
alert(k1 == k2 ); //=true  
alert(i1 == i2 )  //=true  

vielleicht hab ich auch etwas falsch verstanden.

Ciao
 Kurt

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