对console.log的一种封装

45次阅读

共计 845 个字符,预计需要花费 3 分钟才能阅读完成。

对于一个特别喜欢用 console.log 来调试代码的人来说,console.log 的一些坑和 console.log 的详细用法确实是一件值得深究的事。
先记录一下 console.log 的一些坑:1. 对于引用对象,比如 Array 和 Object,打印出来的内容可能是当前在内存里的内容,而不是打印的那个时刻的内容 2. 对于一个大型项目而言,如果 console.log 过多,管理满屏的 console.log 是一件很恐怖的事,因为你很可能找不到想要的信息
针对问题 1,如果你还是要用 console.log 来 debug,那么这是不可避免的。解决方法 1:改变习惯,以后用断点的方式调试。解决方法 2:使用 JSON.stringify 把对象变成字符串打印
本文主要针对【问题 2】提供了一个解决方案。代码如下
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 登录模块调试 4
不会打印其他内容

正文完
 0