2013-10-14 45 views
1

我的JS代碼越來越大,也越來越老。這意味着,在處理其他項目時,我傾向於忘記所有我稱爲函數的序列。我想知道是否有一種工具可以解析我的.js文件並生成一個(簡單)文檔,其中每個函數都列出了所調用的所有其他函數。這只是一個靜態源代碼分析;我不需要它在運行時做任何事情。是否有(靜態)JavaScript函數調用跟蹤工具?

過於簡化的例子:

function firstFunction(){ 
    ... 
    secondFunction(); 
    thirdFunction(); 
} 

function secondFunction(){ 
    ... 
    thirdFunction(); 
} 

function thirdFunction(){ 
    ... 
    secondFunction(); 
    firstFunction(); 
} 

得到的(文本)文件將簡單地列出函數調用(我不關心格式):

firstFunction: secondFunction, thirdFunction 
secondFunction: thirdFunction 
thirdFunction: secondFunction, firstFunction 

編輯:請注意我希望不要更改我的代碼;我有幾十個函數,其中一些函數調用了10-15多個其他函數;在每個函數調用之前或之後打印消息都需要很長時間,無論是編寫和運行每個場景。

編輯第2號:我可以用任何基本的文本編輯器做到這一點,方法是選擇每個函數名並在文件中搜索該名稱的實例;這種方法需要的時間和腦細胞比我現在所能承受的要多得多;一個自動化的工具本來是完美的。

+0

有一種叫做console.log的地方,你在JavaScript中記錄字符串,將你的字符串記錄到瀏覽器控制檯。注意IE7及其下面沒有控制檯對象,可能會拋出錯誤。你也需要照顧。 –

+0

@AkshayKhandelwal console.log將要求我修改我現有的代碼。我希望它能夠「離線」工作,而console.log則需要我去適應每種可能的情況。 –

+0

'new Error()。stack'? –

回答

0

console.trace()在Google Chrome上運行良好。此外console.log()可能會很方便,當調用console.log()時,還會顯示堆棧跟蹤。

+0

這不是OP所要求的。請重新閱讀這個問題。 – Butt4cak3

+0

我需要一些靜態的東西來解析代碼。我花了很多時間來記錄函數調用,因爲我有數十個函數是相互引用的。我試圖不去觸摸代碼。 –