パッケージを簡単に理解する
6410 ワード
閉包とは何ですか
クローズドとは、他の関数の内部変数を読み取る機能です.それは密閉された容器で、set()またはmap()に似ていて、対象でもあります.key:value方式でデータを保存します.
閉包の条件を作る
1、形成関数のネスト2、内部関数は外部関数の局所変数を参照しています.
一つの簡単な閉鎖例
1、外部関数の局所変数のライフサイクルを延長しました.
閉鎖的な欠点
実はクローズドの利点もクローズドの欠点であり、外部関数の局所変数のライフサイクルが延長されて、リリースすべきメモリが解放されなくなり、メモリが漏洩する恐れがある.
クローズドとは、他の関数の内部変数を読み取る機能です.それは密閉された容器で、set()またはmap()に似ていて、対象でもあります.key:value方式でデータを保存します.
閉包の条件を作る
1、形成関数のネスト2、内部関数は外部関数の局所変数を参照しています.
一つの簡単な閉鎖例
function fn1(){
var count = 1; // fn1
return funtion (){
console.log(count); //
}
}
var a = fn1();
a();
クローズドのメリット1、外部関数の局所変数のライフサイクルを延長しました.
function fn1(){
count = 1;
return function (){
count ++;
console.log(count);
}
}
var a = fn1();
a(); //2 count 2, fn1 ,count
a(); //3
2、クローズドによるプライベート変数のカプセル化が可能です.function fn1(n) {
var x = n || 0;
return {
inc: function () {
x += 1;
return x;
}
}
}
var a = fn1();
a.inc();//1
a.inc();//2
a.inc();//3
var b = fn1(12);
b.inc();//13
b.inc();//14
b.inc();//15
外部コードは関数fn 1の変数xにアクセスできませんでした.閉鎖的な欠点
実はクローズドの利点もクローズドの欠点であり、外部関数の局所変数のライフサイクルが延長されて、リリースすべきメモリが解放されなくなり、メモリが漏洩する恐れがある.