無名関数の繰り返し with タイムアウト
(function() { // 処理 setTimeout(arguments.callee, 1000) })()
引数を取る場合 : 0 から順に数字を表示してみる
(function(c) { var self = arguments.callee; document.body.innerHTML = c setTimeout(function() { self(++c) }, 1000) })(0)
再帰足し算
Array.prototype.sum = function() { if(this.length == 1) return this[0]; return this.pop() + arguments.callee.apply(this); } alert([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].sum()); // 55
追記
配列が大きくて再帰しすぎると "too much recursion" とエラーが出る…。
SpiderMonkey で 1000 以上の大きさの配列で出る。