mAciD: Array-Methoden in Funktionen

Beitrag lesen

Hallo zusammen,

ich habe ein Problem mit an Funktionen als Parameter übergeben Arrays.

function copyArray(arrayToCopy) {  
  
  return arrayToCopy.slice(0);  
  
}

Wie ja bekannt ist, wird eine Variable, welche ein Array ist, beim Versuch diese an eine andere Variable zuzuweisen,

var array1 = new Array("1", "2", ...);  
var array2 = array1;

diese nur als Referenz übergeben. Copy by Ref.
Ich will aber Copy by Value. Ich will eine exakte kopie des Arrays.
Aus diesem Grund habe ich mir obige Funktion geschrieben.
Nur fällt mir auf, dass bei mir, immer wenn ich an eine Funktion ein Array als Parameter übergebe, ich zwar noch auf die einzelnen Felder im Array zugreifen kann,

function copyArray(arrayToCopy) {  
  
  alert(arrayToCopy[3].value);  // geht  
  return arrayToCopy.slice(0);  // geht nicht mehr.  
  
}

aber alle Objektmethoden funktionieren anscheinend nicht.
z.B.: .push, .slice, ...

Warum???