For Want Of A Better Word

javascriptの関数リテラル | 変数に無名関数をセットするやつ

      2015/04/19

【参考】http://news.mynavi.jp/column/js/001/index.html

var mtof = function(x) { return x*3.2808399 }
mtof(3);

無名関数をリテラル変数にセットするというやつ。
実行結果をリテラル変数にセットいているのではなく、関数への参照を渡している。
なので、あとで「mtof(3)」というように、実行をしている。

一行で実行して、戻り値だけを取得する場合は、下記のように最後に「()」をつけてしまう。

var mtof = function(x) { return x*3.2808399 }(3);

この時は、関数参照ではなく、実行結果が得られるので注意。
このあとでmtof(3)とかしてもエラーとなる。

■なぜこんな書き方をするのか!!

①無名関数自体のメリット
(1)命名する必要のない関数をシンプルに記述できる。
(2)既存のネームスペースとの衝突を回避できる。

(2)は理解できる。
(1)は命名する必要のない関数というのが、まったく意味が分からないので、メリットとは理解できない。
⇒命名する必要のない関数っていうのは。。⇒名前空間を汚さないためだけの関数ということ?

ここはもっとがっちり、実際にjs開発したときにわかるのかな。。

 - 未分類

  関連記事

no image
CSRF(クロスサイトリクエストフォージェリー)

Webサイトにスクリプトや自動転送(HTTPリダイレクト)を仕込むことによって、 …

no image
puttyのフォントをトゥルータイプに

http://www.yuuan.net/item/494 ここを参考にレジスト …

no image
SQLインジェクションサンプル文

プログラムで実行するSQL SELECT * from users WHERE …

no image
ネットワーク管理系iphoneツール

すごい興味深いアプリが結構紹介されている。 http://builder.jap …

no image
【git】メモ

    参考サイト Gitを使ったバージョン管理【Gitの基 …