console.log
獲取未指定數量的參數並將其內容轉儲到一行中。通過代理函數將參數傳遞給console.log作爲第一類參數
有沒有一種方法可以編寫一個函數,將傳遞給它的參數直接傳遞給console.log
以維持該行爲?例如:
function log(){
if(console){
/* code here */
}
}
這不會是一樣:
function log(){
if(console){
console.log(arguments);
}
}
由於arguments
是一個數組,console.log
將轉儲該數組的內容。它也不會是相同的:
function log(){
if(console){
for(i=0;i<arguments.length;console.log(arguments[i]),i++);
}
}
因爲這將打印所有不同的行。重點是保持console.log
的行爲,但通過代理功能log
。
+ ---
我一直在尋找一個解決方案,我可以適用於未來的所有功能(創建保持的參數完整的處理功能的代理)。如果不能完成,我會接受console.log
的具體答案。
這在Chrome/Safari中不起作用。它會拋出「非法調用」錯誤。 – aditya
@aditya,更新後的代碼..我沒有使用正確的上下文..你需要通過'console'作爲'this'參數來應用.. –
太棒了。這工作。謝謝! – aditya