【发布时间】:2016-06-22 15:20:03
【问题描述】:
是否可以获取如下声明的匿名函数的名称?
var F = function(){};
乍一看,答案是否定的,但显然浏览器知道并持有函数名:
var F = function(){};
var x = new F();
console.log(x.constructor); // function F()
(火狐)
var F = function(){};
var x = new F();
console.log(x); // F {}
(铬)
这个名字是否可以通过某种方式访问?我主要需要它来记录错误,因此解决方案不必是跨浏览器。
编辑澄清:
我从外部代码中获取一个对象,我需要知道它们的类型,因此像使用其他声明方式这样的明显答案不是我要搜索的。
【问题讨论】:
-
我在错误记录方面遇到了类似的问题。在
Error.stack浏览器中将包含令牌的名称,您可以使用它。 -
匿名函数不是无名的吗?您想要存储的变量名称。
-
@whd 该问题的接受答案不是我搜索的答案。我在我的问题中澄清了这一点。
标签: javascript function logging