Есть 2-3 способа.Одним из них, как вы говорите, является использование arguments.callee
.Это может быть единственный способ, если вы имеете дело с анонимной функцией, которая не сохранена и не присвоена какой-либо переменной (о которой вы знаете):
(function() {
return arguments.callee;
})()()()().... ;
2-й - использовать имя функции
function namedFunc() {
return namedFunc;
}
namedFunc()()()().... ;
И последнее - использовать анонимную функцию, назначенную переменной, но вы должны знать переменную, поэтому в этом случае я не вижу причин, почему вы не можете просто дать функции имя,и используйте метод выше
var storedFunc = function() {
return storedFunc;
};
storedFunc()()()().... ;
Все они функционально идентичны, но callee
является самым простым.
Редактировать: И я согласен с SLaks;Я тоже не могу рекомендовать это