alert('MyFunction');
Вы не можете работать лучше, чем надежно, так как эта функция почти не имеет ничего общего с обработчиком ошибок: очень вероятно, что обработчик ошибок может быть создан в другом контексте полностью, включая MyFunction
, или передан
MyFunction
не вызывает обработчик, поэтому запрос arguments.*
не поможет.
Вы можете вставить значение в область действия:
function MyFunction(){
var _injectedFunctionName = arguments.callee.name;
...
// inside the error handler
alert(_injectedFunctionName);
...
}
Хотя это предполагает, что никакое значение с тем же именем не будет конфликтовать (разумное предположение во многих случаях и не слишком разумное в других).
Тот факт, что вы хотите, чтобы имя функции, вероятно, является хорошимпризнак того, что вы думаете о проблеме неправильно.Возможно, если вы объясните, что вы пытаетесь сделать более широко, сообщество может предложить альтернативы.