初心者の壁の一つ、クロージャを軽くまとめてみました
- クロージャとは? 関数と、その関数が宣言されたレキシカルスコープの組み合わせ。
- レキシカルスコープとは? クロージャの中の関数から見た親のスコープのこと
何が良いのか 関数の外からプロパティにアクセス出来なくする(プライベート変数の保持)により バグを防ぐ、保守性を高める など
クロージャの特徴 全体を即時関数で囲む。即時関数とは定義された時点で実行される関数
サンプルコード
let increment = (function () { let counter = 0; //レキシカルスコープ(下記の関数から見た親のスコープ) return function () { counter += 1; console.log(counter); } })(); increment(); //1 increment(); //2 increment(); //3
今回、下記の動画教材を参考にさせて頂きました。 無料教材かつわかりやすいのでおすすめです
https://www.udemy.com/course/road-to-javascript-master/learn/lecture/16597728#overview