По теме, есть такой изврат:
var obj = {
someMethod: function() {
for (var method_name in this) {
if (this[method_name] == arguments.callee)
break;
}
alert(method_name);
}
}
obj.someMethod();
Но это, во-первых, не сработает в strict mode, во-вторых, сработает некорректно, если на эту функцию ссылается более одного свойства объекта, в-третьих, сработает некорректно, если функция вызывается в контексте объекта другого. Вообще, такой задачи не должно вставать, с архитектурой явно что-то не так... Но да уже говорили.