Я знаю, что могу получить имя текущей запущенной функции, используя
arguments.callee.caller.name
Но это не работает в Internet Explorer (любая версия). Какой правильный кросс-браузерный синтаксис? Существует ли обходной путь?
Помимо того факта, что arguments.callee фактически постепенно сокращается и полностью отсутствует в строгом режиме ECMAScript 5, основная проблема заключается в том, что Function объекты в IE не имеют свойства name. Он реализован в некоторых браузерах, в частности в Firefox и в последних браузерах на основе WebKit, но он нестандартный, и на самом деле не существует стандартизированного способа получить имя функции.
arguments.callee
Function
name
Единственный оставленный вариант - попытаться проанализировать имя из строкового представления функции, что не очень хорошая идея . Здесь есть (долгая) дискуссия об этом: http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/b85dfb2f2006c9f0.
вы можете попробовать это:
arguments.callee.caller. $ Name
, так как в IE он поддерживает $ name