2011-10-02 35 views
0

有沒有辦法找到所有調用另一個函數的函數? (然後通過擴展,所有這些功能調用這些功能等)在javascript中獲取所有對函數的調用

我的猜測是不可能的所有情況下,但肯定可以做大多數用例,不是嗎?如果有人將其功能定義爲:

new Function('a','b', 'return a'+'+b;'); 

找到內部引用可能會更棘手。

在此先感謝。

+0

你是指源代碼的靜態分析?或者,你是指動態記錄調用函數的人嗎? – Ariel

+0

你會如何計算這個調用:'eval(prompt(「Enter a function name」)+「()」'?:)你是否在尋找命名的調用? –

+0

我只是談論源代碼的分析。運行時沒有公平的生成函數。 – user420667

回答

1

有一個arguments.caller但它已被棄用。 Function.caller是替換,但您需要函數名稱 - 我會使用arguments.callee或直接名稱。

https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/caller

+0

這是很好的,但我希望能夠將它應用到任何程序,而無需必須添加一堆arguments.callee的語句。本質上我想要的是JavaScript在Visual Studio中可用於C#的東西。 – user420667

+0

比我會嘗試一些與函數的原型和調用和/或應用方法 - 試圖創建一個包裝每個函數的每個調用。但它很難/很難/不可能:D。在每個功能的基礎上執行它相當容易,但這不是你想要的。還有可能拋出+ catch和log +保存堆棧跟蹤。無論如何,JS不是C#;) - 但我想對於任何2種語言都是如此:D –

1

除了其出色的輪廓觀點,Eclipse允許「焦點」源函數選擇其聲明中,然後按F2調用。外觀將顯示在右側欄中。

+0

我會盡力,謝謝。但我希望以編程方式進行。 – user420667

相關問題