初心者向けにJavaScriptのcallメソッドとapplyメソッドの使い方について解説しています。applyやcallメソッドは、あるオブジェクトが持っていない関数などをあたかもそのオブジェクトが実行しているかのように処理してくれるメソッド(関数)です。違いは引数の設定方法になります。 JavaScriptのスコープは、「グローバルスコープ」と「関数スコープ」のみ。すなわち関数は任意にスコープを作るための唯一の手段である。 即時関数が使われるケース. ズバリ、スコープの汚染を防ぐため。 JavaScriptのスコープ.
即時関数を使う理由. call( )は〇〇です!という説明よりも、実は何がしたいのか?なんの為に使っているのか?というのを読み解く事のほうが重要で、このメソッド自体の形式的な理解はさほど大変ではないよ 即時関数を「現在のスコープを汚染せずに新たなスコープを作成するためのテクニック」と捉えるといくらでも使いどころがありそうですが、むやみに即時関数を使うのはかえってコードの可読性を低下させてしまうことにつながるのではないかと思います。 まとめ.
call(this)で無名関数を呼んでいるのだと思われる 蛇足 grunt-contrib-coffee などでCoffeeScriptから変換されるJavaScriptも (function () {}).call(this); にラップされている プログラミング初心者向けに、JavaScriptで【即時関数を使う方法】を解説した記事です。関数とは、関数とは、処理に名前をつけてまとめたものです。無名関数とは、関数名のない関数です。即時関数は、即時実行関数式です。サンプルコードもあり。