栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用正确的行号为console.log正确包装吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用正确的行号为console.log正确包装吗?

这是一个古老的问题,提供的所有答案都太过分了,存在跨浏览器的重大问题,并且没有提供任何超级有用的东西。该解决方案可在每种浏览器中使用,并完全按需报告所有控制台数据。无需黑客,只需一行代码即可签出prepen。

var debug = console.log.bind(window.console)

像这样创建开关:

isDebug = true // toggle this to turn on / off for global controllif (isDebug) var debug = console.log.bind(window.console)else var debug = function(){}

然后只需调用如下:

debug('This is happening.')

您甚至可以通过以下开关来接管console.log:

if (!isDebug) console.log = function(){}

如果您想对此做一些有用的事情,则可以添加所有控制台方法,并将其包装在可重用的函数中,该函数不仅提供全局控制,而且还提供类级别:

var Debugger = function(gState, klass) {  this.debug = {}  if (gState && klass.isDebug) {    for (var m in console)      if (typeof console[m] == 'function')        this.debug[m] = console[m].bind(window.console, klass.toString()+": ")  }else{    for (var m in console)      if (typeof console[m] == 'function')        this.debug[m] = function(){}  }  return this.debug}isDebug = true //global debug statedebug = Debugger(isDebug, this)debug.log('Hello log!')debug.trace('Hello trace!')

现在,您可以将其添加到您的班级中:

var MyClass = function() {  this.isDebug = true //local state  this.debug = Debugger(isDebug, this)  this.debug.warn('It works in classses')}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号