【问题标题】:logging function/objects name's in javascript inside of a function stack在函数堆栈内的 javascript 中记录函数/对象名称
【发布时间】:2012-07-09 06:12:07
【问题描述】:

学习 JS 是一条崎岖不平的道路……我想了解我的代码中发生了什么, 所以console.log(); 好像是我的朋友。

有时我什至不知道错误来自哪里(或者我可能只是 太笨了)所以我想更好地记录我的应用程序堆栈。我试图为此找到答案 简单复杂的问题

怎么做? 除了console.log()

例如,在调用 console.log 的地方获取 函数(构造函数)的 name 证明是有问题的:

function SomeFunction(argument1,argument2) {
    console.log(this+'> 01 message');
    console.log(this.name+'> 02 message');
    console.log(this.constructor+'> 03 message');
    console.log(this.constructor.name+'> 04 message');
    console.log(this.prototype+'> 05 message');
    console.log(this.constructor.method+'> 06 message');
}

SomeFunction.prototype.sayHello = function(} {
    console.log(this+'> 01 says Hello');
    console.log(this.name+'> 02 says Hello');
    console.log(this.constructor+'> 03 says Hello');
    // and so on... //
}

所以。哪一个是正确的? SomeFunction.constructor.name 正在工作, 但是这种语法每次使用都很长,所以像

var fn = this.constructor.name 是有道理的,但这只是效率低下。

有人可以指出我的最佳实践方向吗,我该如何挤压 我的代码中正确的日志信息?

仅供参考:我搜索了几本关于这个简单主题的书,没有一本 说什么。

【问题讨论】:

  • 在开发者工具中使用断点
  • 抱歉,这不是我要找的答案
  • 我认为你只剩下语言和 API 提供给你的语法(无论多么冗长)......你可以像你提到的那样把它转换成别的东西......(fn)但是为什么?这些额外的几个字符不会破坏文件大小(如果他们这样做,那么就按照你最初的建议去做)
  • 我使用的每个质量浏览器在遇到错误时都会提供堆栈跟踪。唯一的困难是当匿名函数出现错误时,约瑟夫的建议解决了这个问题。我认为你只需要学会爱上你的调试器。
  • 假设我没有浏览器。我只是想知道不涉及浏览器和/或 console.log 的任何其他方法;)

标签: javascript debugging logging console


【解决方案1】:

使用开发人员工具(F12、control-I)或get firebug,享受单步执行代码、检查和更改变量、编辑 CSS 的乐趣。它将极大地改善您的 JavaScript 学习体验...

【讨论】:

    猜你喜欢
    • 2017-04-01
    • 2011-01-03
    • 2017-10-20
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多