arguments.callee()でfoo()を再帰的に実行することができる