克隆一个函数然后删除它

时间:2016-09-27 21:23:56

标签: javascript

我想克隆一个函数,但我需要删除原始函数。

let obj={};
obj.funct=function funct() { console.log('test');}
let clone={};
clone.funct=obj.funct.bind({});
delete obj.funct

但是在两个对象中删除了该功能。

有什么想法吗?可能是ref或val问题?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我在循环中使用并克隆了相同的引用对象,因此删除相同的var。

对不起我的错误,谢谢你告诉我代码运行正确。

即:您可以添加所需的全部-1。再次抱歉

答案 1 :(得分:-1)

当您将值传递给clone.funct时,您实际上只是传递了原始函数的引用。杀死原始功能,引用无效。

切断奇偶校验的一种方法是将初始函数字符串化,然后使用函数构造函数创建克隆:



const obj={};
obj.funct=function funct(a,b) { console.log(a,b);}
const clone={};
const functString = obj.funct.toString();
clone.funct= new Function('return (' + functString + ')(...arguments)');
delete obj.funct

 console.log('Original:',obj.funct)
 console.log('Cloned:',clone.funct)
 clone.funct('hello', 'there')