再帰足し算
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 以上の大きさの配列で出る。