Internet Explorer是否支持arguments.callee.name?

我知道我可以通过使用获得当前运行function的名称

arguments.callee.caller.name 

但这在Internet Explorer (任何版本)中都不起作用 。 什么是正确的跨浏览器语法? 是否存在变通方法?

除了在ECMAScript 5严格模式下有效逐步淘汰arguments.callee并且完全不存在这一事实外,主要问题是IE中的Function对象没有name属性。 它在某些浏览器中实现,特别是Firefox和最近的基于WebKit的浏览器,但它们是非标准的,实际上没有标准化的方法来获取函数名称。

这个离开你的唯一选择是尝试从函数的字符串表示中解析名称,这不是一个好主意 。 这里有一个(长期)讨论: http : //groups.google.com/group/comp.lang.javascript/browse_frm/thread/b85dfb2f2006c9f0 。

你可以试试这个:

arguments.callee.caller。$名称

在IE中,它支持$ name