The Study of JavaScript 14 – Immediate function 即時関数


cach

14 Immediate function 即時関数


今回も関数についてです。今回は即時関数というもので、関数を定義した後すぐに呼び出す関数です。

今回のポイントは下のとおりです。

  • 即時関数は宣言と同時に実行される
  • 関数名は省略できる
  • 即時関数を使うことで、変数をローカル変数にすることができる

実際にコードに書いてみると下のようになります。functionを()で包んであげて最後に();を付けます。
今までは関数を呼び出す処理を書かなければいけませんでしたが、即時関数では定義直後に自動的に実行します。

  • index.html

  • 出力結果

    console01

    呼び出し命令を書いていませんが、即時関数なので実行されてahoが表示されました。

また、普通の関数と同じように引数を与えて実行することもできます。
引数は最後の();の中にいれてあげます。

  • index.html

    console01

    ちゃんとaho太郎と表示されました。

あと、即時関数は呼び出してすぐに実行されるので、関数名の省略が可能です。

  • index.html

    <a href=”https://redark.fam.cx/wp-content/uploads/2016/05/js14_3.png>console01

    なんか不自然というか、あまり使いたくない構文の形ですが、他のプログラムを見ていると結構でてきます。理解しておく必要があります。なぜ、こんな書き方をするのでしょうか。

こんな書き方をする理由が、即時関数で一番重要です。「自分が書いたプログラムの変数を、他の人のプログラムから影響を受けたり影響を与えたりしないローカル変数にするときにしようする」 というのがこんな下記方をする理由です。
実際にどうするかを見てみましょう。

  • index.html

    console01

    「functionの中で宣言した変数はfunctionの中でのみアクセスできる」というルールがあったと思います。xとかyとかありきたりな変数名はプログラムのいろんなところで使いたいですし、複数人で1つのプログラムを書く場合には、「この変数名はぜんぜん違うところで使われていた!」なんてこともあるでしょう。そういったことを防ぐために、プログラムを関数化してしまい、functionの中でのみ変数を有効にしておくのです。1人でプログラムを書いていればまあ、困るのは自分だけなので好きに書けばいいのですが、複数人で書く場合はこういった配慮も必要でしょう。。

以上、またみてね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です