在 JavaScript 中克隆函数的最快方法是什么(有或没有它的属性) ?
我想到的两个选项是 eval(func.toString())
和 function() { return func.apply(..) }
。但是我担心 eval 和包装的性能会使堆栈变得更糟,而且如果大量应用或应用于已经包装的堆栈,可能会降低性能。
new Function(args, body)
看起来不错,但是在 JS 中没有 JS 解析器的情况下,我怎样才能可靠地将现有函数分割成 args 和 body 呢?
先谢谢你。
更新: 我的意思是
var funcB = funcA.clone(); // where clone() is my extension
funcB.newField = {...}; // without affecting funcA