gpt4 book ai didi

javascript - 克隆 JavaScript 函数 : anything else better than using eval?

转载 作者:行者123 更新时间:2023-11-28 21:21:52 27 4
gpt4 key购买 nike

已编辑

注意:我已经完全编辑了这个,因为之前的问题是使用另一种方法解决的,并且我简化了这个问题,以便用我对问题的解决方案来回答自己,并与您分享我的结论。

如何通过避免使用 eval(...) 来克隆函数?

我需要获取某个给定函数的精确副本,并且这必须是与源函数不同的对象。

这就是 functionA != functionCloneOfA,包装“functionA”并从其他函数的主体中调用它对我来说不是一个解决方案。

最佳答案

您考虑过 Lasse Reichstein Nielsen 的“克隆”功能吗?本质上,它通过返回一个在其原型(prototype)链上具有该函数的新对象来“克隆”函数。道格拉斯·克罗克福德 (Douglas Crockford) 称他的版本为 "beget" .

var cloneFn = (function() {
var F = function(){};
return function(fn) {
F.prototype = fn;
return new F();
}
}());

var myClone = cloneFn(someFn);

返回一个对象,其 [[prototype]] 是“克隆的”someFn 函数。

关于javascript - 克隆 JavaScript 函数 : anything else better than using eval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6135586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com