2016-02-09 58 views
0

我想写一个将另一个函数作为参数的函数(我们可以假设其他函数的toString方法总是被覆盖并返回一个自定义值),并返回函数的原始代码toString值。JavaScript .toString()默认值

 function foo() {} 
    foo.toString = function() { 
    return 'abc'; } 

如何恢复函数的toString方法,以便它会再次返回“function foo(){}”?

回答

3

由于toString是一个原型属性,当你delete它,它恢复为默认:

function foo() {} 
 

 
foo.toString = function() { 
 
    return 'abc';  
 
} 
 

 
document.write('<pre>'+JSON.stringify(String(foo),0,3)); 
 

 
delete foo.toString 
 

 
document.write('<pre>'+JSON.stringify(String(foo),0,3));