ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript クロージャーの簡単な理解
「The Definitive Guide to JavaScript」や「Elevation」など、JS に関する多くの書籍では、初心者が理解できないほどわかりにくい方法でクロージャーを説明しています。でも心配しないでください。今日はクロージャとは何かを非常に簡単な方法で説明します。初心者向けのクロージャの説明です。難解で単刀直入な記述はなく、一目で理解できます。何か間違っている場合は、修正してください。
クロージャを理解するには、まず変数のスコープを理解する必要があります。
JS にはグローバル変数とローカル変数の 2 つの変数スコープがあります。名前が示すように、グローバル変数は任意の場所で参照できる変数であり、ローカル変数は特定の場所でのみ参照できる変数です。以下のコードを参照してください。 。
var globalScope="global scope"; function f(){ var localScope="local scope"; console.log(globalScope);//global scope } console.log(localScope);//undefined
関数 f() では、関数本体の外で定義された globalScope にはアクセスできますが、関数本体の外で定義された localScope にはアクセスできません。 これがグローバル変数とローカル変数の違いです。
localScope が関数本体の外からアクセスできなくなる可能性はありますか?いいえ、このためにクロージャが生まれます。
function f(){ var localScope="local scope"; return function(){ console.log(localScope); } } f()();//local scope
関数 f() の外側でローカル変数 localScope にアクセスしました。関数 f() 内で定義された匿名関数はクロージャです。