Javascript Function.name在Microsoft Edge中为空

Javascript Function.name在Microsoft Edge中为空,javascript,function,microsoft-edge,Javascript,Function,Microsoft Edge,我有一些在Chrome中运行良好的代码: var someFunc = function(thisIsAFunction) { var functionName = thisIsAFunction.name; } 文档说,除了IE 11之外,这段代码在所有浏览器中都能工作,我有一个polyfill方法。最近,Edge报告“thisIsAFunction.name”为空。我的polyfill没有生效,因为thisisFunction.name不是未定义的。当然,值应该是函数名 知道发生了什

我有一些在Chrome中运行良好的代码:

var someFunc = function(thisIsAFunction) {
   var functionName = thisIsAFunction.name;
}
文档说,除了IE 11之外,这段代码在所有浏览器中都能工作,我有一个polyfill方法。最近,Edge报告“thisIsAFunction.name”为空。我的polyfill没有生效,因为thisisFunction.name不是未定义的。当然,值应该是函数名


知道发生了什么吗?这只是Edge中一个尚未报告的bug吗?我可以通过检查名称中的空值来编写代码,但我不喜欢这样做(但如果这是唯一的选项,我会这样做)

因此这里的答案是,对于Edge,您必须像这样命名您的函数:

var someFunc = function SomeFunc() {} 

如果希望SomeFunc.name等于“SomeFunc”。不理想,但在那里一切都一样。这是一个多么美好的世界。

事实上,我并不认为使用
Function.prototype.name
是个好主意。我认为这是个好主意,但谢谢你的评论。匿名函数的名称是空的。您是否有机会这样调用
someFunc
someFunc(function(){…})?嗯。。我正要说不,但我突然想到var func=function(){}是一个匿名函数,只是设置为一个变量。我来看看这是否是我的问题。
var func=function(){}
不是匿名函数ASFAIK。刚刚签入Chrome,它的名字是
“func”
。但我不确定Edge是如何对待他们的。