假设你有一个递归函数如下:
Blah.prototype.add = function(n) {
this.total += n;
this.children.forEach(function(child) {
child.add(n);
});
};
child.add()
是尾调用吗?如果不是,能否将其编写成尾调用形式?
for(i=0;i<children.length;i++)
循环,并且认为n < children.length
比较将是最后一个动作。不确定forEach是否适用,如果是这种情况,为什么forEach比for更受欢迎。 - pixelmike尾调用
应该会使用return someFn()
,这样还可以使得调用函数被垃圾回收。 - Roko C. Buljan