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

时间:2011-07-18 16:13:49

标签: javascript jquery javascript-events cross-browser mootools

我知道我可以使用

获取当前运行功能的名称
arguments.callee.caller.name

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

你可以试试这个:

arguments.callee.caller。$ name

在IE中它支持$ name