でもreduceってIE9からしか使えないしな。
fillとか存在の意味が分からんし

そんなに一行で書きたいなら

func(n){
 for (var i = 0, o = hoge; i < n; i++) o = o.a()
}