2012-06-03 34 views
2

我想一個快速的方法來像任何方式將代碼添加到每個函數調用

console.log(functionName) 

添加了一些每個函數的頂部。

是否有一個快速簡單的方法來做到這一點,或者我需要手動將該代碼添加到每個功能。

+1

取決於;如果你的代碼格式一致,你可以使用編輯器正則表達式。 –

+1

[每次調用函數時要執行的代碼]的可能重複(http://stackoverflow.com/questions/7489346/code-to-be-executed-each-time-a-function-is-called) –

回答

4

你可以嘗試這樣的事:

for(var x in window) { 
    if(typeof window[x] == "function") { 
     (function(x) { 
      var ox = window[x]; 
      window[x] = function() { 
       console.log(x); 
       ox.apply(null,arguments); 
      }; 
     })(x); 
    } 
} 

然而,這隻能在全局函數,而不是對象或範圍化功能的職能的工作。這也是一種核武器,所以是一個可替代的手動添加控制檯日誌記錄到你想要調用的特定功能。

相反,在代碼中插入斷點(使用瀏覽器的開發人員工具)並在該點檢查調用堆棧可能會更好。

+0

聰明!如果我仍然有選票留下,我會爲其+1了:) –

+0

不錯,我也可以使用相同的結構來循環任何我想要做的事情。這是我可以把你的可能在一個函數,窗口只是你可能通過它的一個參數。 – asutherland

0

恐怕這對JavaScript不可行,因爲它不支持運行時修改功能內容。

但是,您可以對腳本進行備份並執行搜索&替換以節省編輯部分的一些時間;現代編輯支持基本的正則表達式來幫助你。

+0

在運行時包裝該功能將完成這項工作。唯一的問題是獲取所有功能的列表。 – ThiefMaster

+0

@ThiefMaster沒錯,儘管Kolink找到了一個不錯的方法:) –

0

如果您使用像Frame.js這樣的流量控制庫,您可以低級別訪問應用程序中最重要的功能。當然,你必須從一開始就用Frame構建應用程序。如果您嘗試修改已經構建的應用程序,這將不起作用。

相關問題