Получить имя текущей ф-ции внутри ф-ции
Доброго времени суток, форумчане. Возможно по названию темы некоторым этот вопрос показался глупым, ибо зачем получать имя ф-ции?
Есть допустим такой код: var addElement = function(a, b) { var funcName = ???? if(funcName == 'addElement') alert('Hello World!'); else alert('Goodbay World!'); //Code } var addText = addElement; По сути, addText() будет одно и то же, что и addElement(). Но вот нужно определить с какой конкретно идёт обращение к ф-ции? Точнее, как определить имя этой ф-ции внутри ф-ции? Буду благодарен за помощь. :) |
|
ANAGAMA, ну если было бы просто function addElement(), то да, а тут var addElement = function()
|
addText и addElement в данном случае имена переменных и никакого отношения к самой функции не имеют.
|
var addElement = function(a, b, funcName) { //var funcName = ???? if (!funcName) funcName='addElement'; if(funcName == 'addElement') alert('Hello World!'); else alert('Goodbay World!'); //Code } var addText = function(a,b) { return addElement(a,b,'addText'); }; |
Идея такова: берем this функции и проходимся по его свойствам, сравнивая toString() каждого свойства с toString() самой функции, т. е. фактически ищем функцию по исходному коду. Рецепт не универсален, но может сработать. Каюсь, невнимательно прочитал условие. |
Цитата:
|
Часовой пояс GMT +3, время: 06:40. |