JavaScript: Klonen Sie eine Funktion

Was ist der Schnellste Weg, um Klon-Funktion in JavaScript (mit oder ohne seine Eigenschaften)?

Zwei Optionen in den Sinn kommen sind eval(func.toString()) und function() { return func.apply(..) }. Aber ich bin besorgt über die Leistung von eval und Verpackung-machen-Stapel schlimmer und wird wahrscheinlich die Leistung beeinträchtigen, wenn eine Menge oder angewendet, um bereits verpackt.

new Function(args, body) sieht nett aus, aber wie genau kann ich zuverlässig split vorhandene Funktion args und Körper, ohne ein JS-parser in JS?

Vielen Dank im Voraus.

Update:
Was ich meine ist, in der Lage zu tun

var funcB = funcA.clone(); //where clone() is my extension
funcB.newField = {...};    //without affecting funcA

InformationsquelleAutor der Frage Andrey Shchekin | 2009-12-02

Schreibe einen Kommentar