在 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