Поддерживает ли Internet Explorer arguments.callee.name? - PullRequest
2 голосов
/ 18 июля 2011

Я знаю, что могу получить имя текущей запущенной функции, используя

arguments.callee.caller.name

Но это не работает в Internet Explorer (любая версия). Какой правильный кросс-браузерный синтаксис? Существует ли обходной путь?

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Помимо того факта, что arguments.callee фактически постепенно сокращается и полностью отсутствует в строгом режиме ECMAScript 5, основная проблема заключается в том, что Function объекты в IE не имеют свойства name. Он реализован в некоторых браузерах, в частности в Firefox и в последних браузерах на основе WebKit, но он нестандартный, и на самом деле не существует стандартизированного способа получить имя функции.

Единственный оставленный вариант - попытаться проанализировать имя из строкового представления функции, что не очень хорошая идея . Здесь есть (долгая) дискуссия об этом: http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/b85dfb2f2006c9f0.

0 голосов
/ 27 января 2017

вы можете попробовать это:

arguments.callee.caller. $ Name

, так как в IE он поддерживает $ name

...