Don P: 'besondere' Objekte im IE klonen

Beitrag lesen

Hallo,

Interessant, aber sorry, eine Lösung fällt mir gerade nicht ein, aber folgendes stimmt wohl eher nicht:

im Firefox scheint auch alles wie gewünscht zu klappen

Deine Funktion

function clone(parent) {
  function Func() {}
  Func.prototype = parent;
  var obj = new Func();
  for(var i = 1; i < arguments.length;)
   obj[arguments[i++]] = arguments[i++];
  return obj;
 }

ist nämlich ein bisschen übereifrig beim inkrementieren von i. Da fehlt nachher etwas, wie man leicht überprüfen kann:

var klon = clone( {a:"A"}, "B", "C");
for(var p in klon){alert(klon[p]);};

Nimm lieber das übliche:

for(var i = 1; i < arguments.length; i++)
   obj[arguments[i]] = arguments[i];

Dann bekommst du auch wirklich jedes "argument".

Gruß, Don P