2014-11-02 139 views
0

我有一個需求,我需要將function start <function code> function end返回爲任何函數調用的toString函數的輸出。如何覆蓋Function.prototype.toString

+1

你能否解釋多一點?發佈其toString方法的任何函數和所需輸出的示例。 – dfsq 2014-11-02 08:45:12

+0

所以'Function.prototype.toString = function(){return'function start function end';}'做你想做的事情?如果不是,爲什麼不呢?你想要它做什麼呢?提供一個具體的例子和期望的結果。請使用修改來編輯您的帖子並進行詳細說明。 – Paul 2014-11-02 09:00:13

回答

0

這將輸出函數的開始和函數結束包裹在函數源的源代碼本身。如果你不想要源代碼,只需刪除它。

(function(){ 
    var j=Function.prototype.toString;//copy of native toString; 
    Function.prototype.toString=function() 
    { 
     return '//function start\n'+j.call(this)+'\n//function end'; 
    }; 
})(); 

testy=function(a,b) 
{ 
    return a+b; 
}; 

alert(testy); 

http://jsfiddle.net/Lx5L4qqk/