Подтвердить что ты не робот

Есть ли способ получить текущую функцию из текущей функции?

Извините за действительно странное название, но вот что я пытаюсь сделать:

var f1 = function (param1, param2) {

    // Is there a way to get an object that is ‘f1’
    // (the current function)?

};

Как вы можете видеть, я хотел бы получить доступ к текущей функции из анонимной функции.

Возможно ли это?

4b9b3361

Ответ 1

Да - arguments.callee - текущая функция.

ПРИМЕЧАНИЕ. Это устарело в ECMAScript 5 и может привести к удару производительности для рекурсии хвостового вызова и тому подобного. Однако он работает в большинстве основных браузеров.

В вашем случае f1 также будет работать.

Ответ 2

Назовите его.

var f1 = function fOne() {
    console.log(fOne); //fOne is reference to this function
}
console.log(fOne); //undefined - this is good, fOne does not pollute global context

Ответ 3

Вы можете получить к нему доступ с помощью f1, поскольку функция будет назначена переменной f1 до ее вызова:

var f1 = function () {
    f1(); // Is valid
};

f1(); // The function is called at a later stage