"вызвать саму себя", что именно вы себе этим представляете? Сокращением кода? А что делать с агрументами?
Знаю только, что подобные вещи точно можно использовать в Bash
function testit() {
echo "$1"
[ -n "$1" ] && return;
echo $__FUNCNAME__ "ok"
}
testit
JavaScript
function testit() {
if (arguments.length>1 && arguments[1]<2) {
console.log(arguments[0], arguments[1]);
arguments.callee("offtop", arguments[1]+1);
} else {
console.log("no arguments left");
}
}
testit("test", 1);
Как видно, имя функции слегка пухнет при таком использовании, так что дело Ваше пользоваться или нет.
Предположу, что и другие многие скриптовые языки располагают подобным инструментом.
Наверняка, этой возможностью располагают Java и С#. Гугл в помощь.