2014-01-22 29 views
0

我試圖創建一個日誌代理,其中每個日誌語句都有一個前綴。調用console.log與應用

我想是這樣做:

customDebug("xxx","yyy"); 

和木下它會做:

console.debug("prefix","xxx","yyy"); 

我試圖實現這種方式:

prefixLogArguments: function(arg) { 
    var array = _.toArray(arg); 
    array.unshift(this.getPrefix()); 
    return array; 
}, 

customDebug: function() { 
    var argArray = this.prefixLogArguments(arguments); 
    console.debug.apply(undefined, argArray); 
}, 

它說Uncaught TypeError: Illegal invocation,因爲它似乎我們不能調用apply/call本地代碼,即使未定義的國家噸。

有人能告訴我如何做到這一點?

我可以做console.debug(argArray);它不是那麼糟糕,但它不會產生相同的結果,因爲它記錄數組而不是記錄參數列表。

+0

上的console.log [類型錯誤非法調用可能重複。應用](http://stackoverflow.com/questions/8159233/typeerror-illegal-invocation-on-console-log-apply) – epascarello

回答

4

你應該給 '控制檯' 作爲適用的情況下:

var customDebug = function() { 
    console.debug.apply(console, arguments); 
}; 

參見:http://jsfiddle.net/X6Sn9

3

試試這個:

console.debug.apply(console, argArray);