ホームページ > 記事 > ウェブフロントエンド > JavaScript クロージャとは何かについての深い理解_基礎知識
1. 簡単な例
典型的な間違いから始めましょう。ページには onclick メソッドをバインドしたいので、次のコードがあります。
var spans2 = $("#divTest2 span ");
function innerFn () { functioninnerFn () {}
}}
JavaScript を使用すると、開発者はあらゆる種類のデータと同様に関数を渡すことができます。つまり、JavaScript の内部関数は、それを定義する外部関数をエスケープできます。
エスケープする方法は多数あります。たとえば、次のように内部関数をグローバル変数に割り当てることができます。
コードは次のとおりです。
1.2 変数のスコープ
コードをコピー
コードは次のとおりです:
内部関数が複数ある場合、予期しないクロージャが発生する可能性があります。増加関数を定義します。この関数の増分は 2
です。コードをコピー
function innerFn2() {
externalVar = 2;
document.write("Inner function 2t");
document.write("outerVar = " "
") ;
}
return { "fn1": innerFn1, "fn2": innerFn2 };
}
var fnRef = innerFn();
fnRef.fn 1();
fnRef .fn2();
fnRef.fn1();
var fnRef2 = innerFn();
fnRef2.fn1();
fnRef2.fn2();
fnRef2。 fn1() ;
4.解不安
私たちが見返すことができる、シティ・アラート 4 の例は、毎回シティ・アラート 4 の最初のタイプの書き込み法であることは明らかです。 🎜> 代码如下:
これを読んだ後は、誰もが私と同じようにクロージャについてある程度理解できるはずです。もちろん、完全に理解した場合は、関数の実行環境とスコープ チェーンを理解する必要があります。^_^