【发布时间】: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