Don P: nur array-kopie verändern

Beitrag lesen

Hallo,

Das wird alles in dem von mir verlinktem Thread erklärt.

Findest du? Naja, die concat-Lösung dort gefällt mir gar nicht, und man muss für die einfache Aufgabe auch nicht unbedingt gleich am Prototyp "rumpfuschen" ;)

Auch Objekte lassen sich übrigens kopieren (mit Einschränkungen). Crockfords geniale Funktion

function object(o) {  
  function F() {};  
  F.prototype = o;  
  return new F();  
}

erledigt das. Man erhält ein neues Objekt mit allen Eigenschaften und Methoden des Originals im Prototyp. Wenn dann eine Eigenschaft überschrieben wird, ist das Original nicht betroffen. Dazu müsste schon die Eigenschaft des Prototyps überschrieben werden.

Angenommen, wir wollten auf diese Weise alle Array-Inhalte wirklich kopieren, dann müsste man die Objekte gesondert behandeln, d.h. sie z.B. mit typeof untersuchen um ggf. die object-Funktion anwenden zu können, und schon sind wir wieder beim typeof null === 'object' -Problem, gell Struppi :))

Gruß, Don P