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委员会认为这些参考文献弊大于利。任何支持严格模式的浏览器在使用这些属性时都会抛出异常。