在 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
原文由 Andrey Shchekin 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试这个: