1

我喜歡在運行時包裝任何JavaScript調用,例如 我想寫一個日誌來調用Func。如何添加動態包裝任何函數調用的JS代碼?

這個包裝必須適用於任何功能,甚至那些使用eval或原型添加的功能。

+0

你不能沒有用C寫它這樣做++作爲的NodeJS擴展 – Raynos 2011-03-03 13:14:42

+0

的可能重複[添加console.log自動](http://stackoverflow.com/questions/5033836/adding-console-log-to-every-function-automatically) – 2011-03-03 13:15:44

+0

@Raynos,那麼客戶端呢?我想這是相同的答案,因爲它是相同的V8? – DuduAlul 2011-03-03 13:21:28

回答

1

你想找的是node-proxy

使用本機JS你不能做到這一點。這隻適用於node.js。它可能可以調整爲適用於V8上運行的任何js。

0

如果你是用call方法來調用你的功能,你可以做這樣的事情:

oldCall = Function.prototype.call; 
Function.prototype.call = function(){ 
// do some logging here 
oldCall.apply(this, arguments); 
} 
+0

我不是,它應該適用於任何代碼。 – DuduAlul 2011-03-03 15:22:13

+0

在這種情況下,我擔心在純JavaScript中是不可能的。 – Vincent 2011-03-03 17:43:50