我一直在更具体地阅读编程的闭包概念,尤其是与 Javascript 相关的内容。不过,我还没有完全理解它与我多年来编写的 Javascript 代码有何不同。我也理解递归的概念,但我想知道,闭包和递归有何相似之处?我是否正确理解递归本身就是一种闭包?
关闭:
function init() {
var name = "Stack Overflow";
function displayName() {
alert(name);
}
displayName();
}
init();
递归:
function factorial(num) {
if(num < 0)
return -1;
else if(num == 0)
return 1;
else
return (num * factorial(num - 1));
}
alert(factorial(8));
我想我开始明白闭包只不过是在函数中拥有一个函数,内部函数可以通过范围访问外部函数。会不会有递归闭包?我的意思是,虽然我的递归示例也不完全是闭包的示例,但它至少会发生吗?我试图了解递归和闭包是如何相似、不同的,或者它们是否具有可比性。有什么例子可以描述这一点吗?