学习JS是一条崎岖不平的道路...我想了解我的代码中发生了什么, 因此console.log();
似乎是我的朋友。在函数堆栈中的JavaScript内部记录函数/对象名称的函数栈
有时我甚至不知道错误来自哪里(或者我可能只是 太愚蠢)所以我想更好地记录我的应用程序堆栈。我试图找到一个答案这个 简单又复杂的问题:
如何做到这一点?除了与console.log()
例如获得名称的函数(构造)的其中console.log
被称为证明是有问题:
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
是有道理的,但那样做效率不高。
有人可以指向我的良好做法方向,我如何从我的代码挤压 正确的日志信息?
FYI:我搜索了几本关于这个简单的主题的书籍,并且 都没有提到它。
在开发人员工具中使用断点代替 – Joseph 2012-07-09 19:42:01
抱歉,但这不是我寻找的答案 – Inoperable 2012-07-09 19:45:02
我认为你留下了语言和API提供的语法(但繁琐)你..你可以像你提到的那样将它投掷到别的东西上......(fn)但是为什么?这些额外的几个字符不会破坏银行的文件大小(如果他们这样做,然后做你最初的建议) – rlemon 2012-07-09 19:47:51