有没有办法在Javascript中获得源码行号,就像C或PHP语言中的__LINE__?
发布于 2009-01-17 09:10:19
有一种方法,虽然代价更高:抛出一个异常,立即捕获它,并从它的堆栈跟踪中挖掘出第一个条目。有关如何解析跟踪的信息,请参阅示例here。同样的技巧也可以在普通Java中使用(如果代码是在打开调试信息的情况下编译的)。
编辑:显然并不是所有的浏览器都支持它。好消息是(谢谢你的评论,Christoph!)有些浏览器会导出源文件名和行号directly through the fileName and lineNumber properties of the error object。
发布于 2009-01-17 09:15:04
简短的答案是no。
长长的答案是,根据浏览器的不同,您可能会抛出异常并捕获异常并提取堆栈跟踪。
我怀疑您正在使用它进行调试(无论如何,我希望如此!)所以你最好的选择就是使用。这将为您提供一个console对象;您可以在任何时候调用console.trace()来查看您的程序正在做什么,而不会中断执行。
发布于 2009-08-28 10:42:45
C中的__LINE__由一个preprocessor扩展,它直接将其替换为当前输入的行号。所以,当你看到
printf("Line Number: %d\r\n", __LINE__);编译器看到:
printf("Line Number: %d\r\n", 324);实际上,数字(在本例中为324)被硬编码到程序中。只有这种双通道机制才能实现这一点。
我不知道PHP是如何做到这一点的(它也是经过预处理的吗?)
https://stackoverflow.com/questions/453028
复制相似问题