尾调用和尾递归优化
尾调用
参考链接
TL; DR
尾调用就是指在某个函数的最后一步调用另一个函数。亦或者说把函数调用放在函数的最后。
function f(x) {return g(x);
}
调用栈
当在函数中调用另一个新的函数时,将会在运行栈中新建一个栈帧,并把新的函数执行所需要的变量,寄存器等放入这个栈帧。上一个函数所对应的栈帧被称为调用帧。如下图所示:

如之前所说的,尾调用就是一个函数执行的最后一步是将另一个函数调用并返回。这样就可以不用保存调用者栈帧中的参数,变量等,甚至可以不用保存调用帧,可以大大减少调用栈的大小。
尾调用优化
TL; DR
尽力做到每次调用函数时,只保留内层被调用函数的栈帧,这样可以大大节省内存。
function f() {let m = 1;let n = 2;return
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
