2016-02-09 82 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));