私はまだ JavaScript のクロージャーに頭を悩ませています (記録として、スタック オーバーフローの JavaScript クロージャーへの回答と、「ダミーのための JavaScript クロージャー」を読みましたが、まだ戸惑っています)。
私の主な問題は、関数内で別の関数を宣言することの重要性を理解するのに苦労していることです。内部関数を返すと、外部関数のローカル変数がアクティブなままになることがわかりますが、この例ではまだそうではありませんか?
function sayName(name) {
var say = "Hello, " + name;
alert(say);
}
var sayJohn = sayName("John");
ローカル変数「say」は、私が作成した sayJohn() 関数のローカル スコープ外で参照されています。それで、これはまだ閉鎖を作成していませんか?
NB、これがすべて文字化けしているように聞こえることをお詫びします。JavaScript とプログラミング全般を学習するのはまだ非常に新しいので、お手柔らかにお願いします。