资讯专栏INFORMATION COLUMN

对console.log的一种封装

shmily / 3409人阅读

摘要:对于一个特别喜欢用来调试代码的人来说,的一些坑和的详细用法确实是一件值得深究的事。解决方法改变习惯,以后用断点的方式调试。解决方法使用把对象变成字符串打印本文主要针对问题提供了一个解决方案。

对于一个特别喜欢用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

不会打印其他内容

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101496.html

相关文章

  • JavaScript设计模式与开发实践 | 01 - 面向象的JavaScript

    摘要:在中,并没有对抽象类和接口的支持。例如,当对象需要对象的能力时,可以有选择地把对象的构造器的原型指向对象,从而达到继承的效果。本节内容为设计模式与开发实践第一章笔记。 动态类型语言 编程语言按数据类型大体可以分为两类:静态类型语言与动态类型语言。 静态类型语言在编译时已确定变量类型,动态类型语言的变量类型要到程序运行时,待变量被赋值后,才具有某种类型。 而JavaScript是一门典型...

    suxier 评论0 收藏0
  • javascript设计模式与开发实践(二)- 封装和原型模式

    摘要:对象会记住它的原型给对象提供了一个名为的隐藏属性,某个对象的属性默认会指向它的构造器的原型对象,即。我们通过代码来验证再来实际上,就是对象跟对象构造器的原型联系起来的纽带切记这句话,对未来理解原型链很有帮助。 封装 封装数据 在许多语言的对象系统中,封装数据是由语法解析来实现的,这些语言也许提供了 private、public、protected 等关键字来提供不同的访问权限。例如:j...

    luxixing 评论0 收藏0
  • JavaScript 面向象开发知识总结基础篇

    摘要:字面形式允许你在不需要使用操作符和构造函数显式创建对象的情况下生成引用值。操作符以一个对象和一个构造函数作为参数鉴别数组有前一小结可以知道鉴别数组类型可以使用。属性是函数独有的,表明该对象可以被执行。这种函数被称为匿名函数。 引子: 1.JavaScript 中的变量类型和类型检测 1.1原始类型 1.2引用类型 1.3內建类型的实例化 1.4函数的字面形式 1.5正则表达式的字...

    Kross 评论0 收藏0
  • ES6中Promise 承诺封装异步操作解析

    摘要:有了对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,对象提供统一的接口,使得控制异步操作更加容易。它的作用是为实例添加状态改变时的回调函数。这时,第二个方法指定的回调函数,就会等待这个新的对象状态发生变化。 Promise 是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理和更强大。它由社区最早出和实现,ES6 将其写进了语言标准,统一了...

    qianfeng 评论0 收藏0

发表评论

0条评论

shmily

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<