コツコツ学習ブログ

プログラマのweb上のメモ的なもの

クロージャ 超初級編(JavaScript)

初心者の壁の一つ、クロージャを軽くまとめてみました

  • クロージャとは? 関数と、その関数が宣言されたレキシカルスコープの組み合わせ。
  • レキシカルスコープとは? クロージャの中の関数から見た親のスコープのこと
  • 何が良いのか 関数の外からプロパティにアクセス出来なくする(プライベート変数の保持)により バグを防ぐ、保守性を高める など

  • クロージャの特徴 全体を即時関数で囲む。即時関数とは定義された時点で実行される関数

サンプルコード

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