(エッセンス)2020年6月25日JavaScriptプレミアム編クローズ
6232 ワード
クローズドパッケージの特徴
1.関数ネスト関数2.関数の内部は外部のパラメータと変数3を参照することができる.パラメータと変数はゴミ回収メカニズムでは回収されず、メモリに保存されます.
クローズドパッケージのメリット
1.変数がキャッシュに存在することを望む.全体的な汚染を避ける.
クローズドパッケージの2つの方法
1.関数を戻り値とする
2.関数を入力パラメータとする
クローズドパッケージの適用シーン
中のdataは外部からアクセスできず、提供されたgetとsetメソッドでしか対応できません.
1.関数ネスト関数2.関数の内部は外部のパラメータと変数3を参照することができる.パラメータと変数はゴミ回収メカニズムでは回収されず、メモリに保存されます.
クローズドパッケージのメリット
1.変数がキャッシュに存在することを望む.全体的な汚染を避ける.
クローズドパッケージの2つの方法
1.関数を戻り値とする
function create(){
let a = 1;
return function(){
console.log(` :${a}`)
}
}
let a = 0;
let getFunc = create();
getFunc(); // 1
2.関数を入力パラメータとする
function func(fn){
let b = 1;
fn();
}
function fn1(){
console.log(b);
}
let b = 0;
const fn2 = func(fn1);
fn2() //0
クローズドパッケージの適用シーン
// API
function createChace(){
let data = {}; //
return{
get(key){
return data[key]
},
set(key,val){
data[key] = val;
}
}
}
let chace = createChace();
chace.set("name","ace");
console.log(chace.get("name")); //ace
中のdataは外部からアクセスできず、提供されたgetとsetメソッドでしか対応できません.