對console.log的一種封裝

對於一個特別喜歡用console.log來調試代碼的人來講,console.log的一些坑和console.log的詳細用法確實是一件值得深究的事。數組

先記錄一下console.log的一些坑:
1.對於引用對象,好比Array和Object,打印出來的內容多是當前在內存裏的內容,而不是打印的那個時刻的內容
2.對於一個大型項目而言,若是console.log過多,管理滿屏的console.log是一件很恐怖的事,由於你極可能找不到想要的信息debug

針對問題1,若是你仍是要用console.log來debug,那麼這是不可避免的。
解決方法1:改變習慣,之後用斷點的方式調試。
解決方法2:使用JSON.stringify把對象變成字符串打印調試

本文主要針對【問題2】提供了一個解決方案。代碼以下code

let consoleVersion = [1000, 1001];

let emptyFunc = function(){}

let _log = function(version){
    if(consoleVersion.includes(version)){
        return console.log;
    }else{
        return emptyFunc;
    }
}

使用方式對象

log(1000)('顯示1');
log(1001)('顯示2');
log(1002)('不會顯示1');
log(1003)('不會顯示2');

原理是經過consoleVersion數組管理打印的內容,好比今天我須要調試登陸模塊
咱們記錄登陸模塊的console.log的調試內容爲1001,那麼全部的登陸模塊的打印都使用這樣的方式打印內存

log(1001)('登陸模塊調試1');
log(1001)('登陸模塊調試2');
log(1001)('登陸模塊調試3');
log(1001)('登陸模塊調試4');
log(1002)('其餘模塊調試1');

而後設置字符串

consoleVersion = [1001];

這樣只會打印:
登陸模塊調試1
登陸模塊調試2
登陸模塊調試3
登陸模塊調試4string

不會打印其餘內容io

相關文章
相關標籤/搜索