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