私はプログラミングのクロージャの概念、特に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));
クロージャーとは関数内に関数を持ち、内部関数がスコープを介して外部関数にアクセスできることを理解し始めていると思います。再帰的なクロージャはありますか? つまり、私の再帰の例はクロージャーの例でもありませんが、少なくともそれは起こり得るのでしょうか? 私は、再帰とクロージャーがどのように似ているか、異なっているか、またはそれらがすべて比較できるかどうかを理解しようとしています。これを説明する例はありますか?