2016-12-14 53 views

回答

12

现在的答案是

[[FunctionLocation]]属性,你看到在检查中V8Debugger::internalProperties()在调试器的C++代码,使用另一个C++函数V8Debugger::functionLocation()收集关于功能的信息补充。 functionLocation()然后使用许多特定于V8的C++ API(例如v8::Function::GetScriptLineNumber() and GetScriptColumnNumber())来查找确切的信息。

上述所有的API都是C++代码专用的,而不是JavaScript代码。如果您试图在像Node.js这样的平台上完成此任务,那么您应该可以编写本地模块。如果不是,那么你的运气不好。

0

console.log可以在Chrome中显示函数名称limited language support

我发现这个函数名在调试回调以及使用observer pattern时很有用。注意这需要命名函数才能工作(匿名函数名称显然是空白的)。

function myFn() {} 

if (typeof myFn === 'function') { 
    console.log('Name of function', myFn.name) 
} 

输出Name of function myFn