ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript クロージャーの簡単な理解

JavaScript クロージャーの簡単な理解

高洛峰
高洛峰オリジナル
2016-10-15 16:09:431291ブラウズ

「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() 内で定義された匿名関数はクロージャです。

JavaScript クロージャーの簡単な理解

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。