Есть ли способ получить текущую функцию из текущей функции?
Извините за действительно странное название, но вот что я пытаюсь сделать:
var f1 = function (param1, param2) {
// Is there a way to get an object that is ‘f1’
// (the current function)?
};
Как вы можете видеть, я хотел бы получить доступ к текущей функции из анонимной функции.
Возможно ли это?
Ответы
Ответ 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