js函数能不能查看调用它的函数的位置,最好就要log一样知道是哪个文件,哪行

我是为了控制log在debug时打印出来,在release时不删log也不会打印。代码如下
var isDebug=true;
function mylog(objToPrint){
if(isDebug){
console.log(objToPrint);

}

}
这时候在浏览器就只能看到log的位置在这个函数里边,但是我想知道是哪个函数的哪行调的这个函数,这样才能找到真正的log位置。如果用mylog.caller,它会把整个调用的函数都打出来,这样在控制台根本不好看。

使用浏览器开发者工具啊,调用堆栈就可以看到js执行的顺序.你在要查看堆栈调用的地方打个断点,然后在浏览器调试工具sources中的call stack中查看.
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-19
这个目前是无法实现的。

js函数能不能查看调用它的函数的位置,最好就要log一样知道是哪个文件...
使用浏览器开发者工具啊,调用堆栈就可以看到js执行的顺序.你在要查看堆栈调用的地方打个断点,然后在浏览器调试工具sources中的call stack中查看.

怎么查看网页js函数的位置(具体看补充问题)
如果是浏览器直接查看的话只能Ctrl+F了,如果是文本编辑器,可上网搜索该编辑器是否有定位功能 sublime便支持快速定位,按下Ctrl+P,输入“@函数名”即可快速定位函数 (或者直接Ctrl+R,输入函数名)

js调试器可以看到当按下按钮后会调用哪个函数吗
你在函数的开头向控制台发个消息不就行了吗?把所有有可能触发的函数都加上,这样在调试器的界面就能看到哪个函数调用了以及调用的顺序(假如有多个事件都触发的话)

js如何知道函数名调用函数?
str = "func_abc";\\x0d\\x0a\/\/调用func_abc\\x0d\\x0aeval(str);\\x0d\\x0a\\x0d\\x0a如果要传参数,比如\\x0d\\x0aeval( str + "( '字符串参数', 123 )" ); \\x0d\\x0a也可以\\x0d\\x0aeval( "var _function = " + str );\\x0d\\x0a_function( "字符串参数", 123 ...

js文件中调用另一个js文件的函数
假设条件是:JS(A)要调用JS(B)的函数.那么要满足以下条件:1.要保证你所调用的JS必须在同一个页面里. 也就是JS(A)和JS(B)都要在页面X里.2.要保证你所调用的JS先于调用者本身被解释.也就是JS(B)要先于JS(A)被解释.反映在页面上,就是JS(B)要写到JS(A)的前面.3.要保证所调用的JS必须...

javascript中如何查看和调用函数的返回值
一个函数返回的值是拿来供另一个或其他多个函数使用的,一个函数里面返回的变量值只能在函数内部查看调用,返回值就提供了一个连接多个函数的通道。不然的话你得用全局变量,js里面用全局变量是很糟糕的 js里面时不能像你这样写法一次返回多个值的,只能返回x、y中的一个(其他很多语言这点都比js方便)...

这是一个js的弹窗,我想要知道调用alert的位置,如何做。跪求大神赐招...
如题主所给弹窗)是一个自定义弹窗,是JS生成的新dom元素,在该产生提醒时才显示在网页内。因此不能通过查找alert来定位弹窗调用位置,而且也很难猜测自定义弹窗的方法名。如果想查找该弹窗位置,建议在弹窗范围内点右键,选择“审查元素”,根据弹窗的class从js源代码中查找包含该class的代码段 ...

js 查看被什么方法调用
在 js(正确的名称应该是:ECMAScript) 里一切都是对象,变量就不用说了,连函数也是作为对象存在的。每个函数都有 name 和 caller 属性,name 属性返回函数的名称,而 caller 属性返回的是调用它的函数对象(是对象不是名称)。arguments 对象及它的 callee 属性:而函数在调用开始会生成一个 ...

JavaScript(JS) console.log() 不显示文件名和行号的问题的解决方法_百 ...
在Chrome浏览器中,当你使用console.log()进行日志输出时,可能会遇到只有函数名或内存地址,如react_devtools_backend.js:4049,而缺失文件名和行号的情况。这种情况通常出现在开发者工具的默认设置中。为了解决这个问题,这里提供一种简单的解决方案。首先,确保你已经在Chrome浏览器中启用了源映射功能。源...

通过javascript执行链获取上下文对象
1.this是关键字,不是变量,不是属性名,js语法不允许给this赋值。2.关键字this没有作用域限制,嵌套的函数不会从调用它的函数中继承this。3.如果嵌套函数作为方法调用,其this指向调用它的对象。4.如果嵌套函数作为函数调用,其this值是window(非严格模式),或undefined(严格模式下)。 解读一下: 上面说的概括了this...

相似回答