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

Javascript Internet Explorer是否支持arguments.callee.name?,javascript,jquery,cross-browser,mootools,Javascript,Jquery,Cross Browser,Mootools,我知道我可以通过使用 arguments.callee.caller.name 但这在InternetExplorer(任何版本)中都不起作用。正确的跨浏览器语法是什么?是否存在解决方法?除了参数.被调用方实际上被淘汰,并且在ECMAScript 5严格模式中完全不存在之外,主要问题是IE中的函数对象没有名称属性。它是在一些浏览器中实现的,特别是Firefox和最近基于WebKit的浏览器,但它是非标准的,而且确实没有标准化的方法来获取函数名 这给您留下的唯一选项是尝试从函数的字符串表示中解析

我知道我可以通过使用

arguments.callee.caller.name

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

除了
参数.被调用方
实际上被淘汰,并且在ECMAScript 5严格模式中完全不存在之外,主要问题是IE中的
函数
对象没有
名称
属性。它是在一些浏览器中实现的,特别是Firefox和最近基于WebKit的浏览器,但它是非标准的,而且确实没有标准化的方法来获取函数名

这给您留下的唯一选项是尝试从函数的字符串表示中解析名称,这不是一个好主意。这里有一个关于它的(长)讨论:。

你可以试试这个:

参数.callee.caller.$name


在IE中,它支持$name

您不能再这样做了。它已被弃用。依赖于此是错误的代码。重构它很好的了解-谢谢你,雷诺斯!即使我后悔,雷诺斯是对的<代码>参数。被调用方和
调用方
都不推荐使用。ECMA委员会认为这些参考文献弊大于利。任何支持
严格模式的浏览器在使用这些属性时都会抛出异常。