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
Firebugからjavascriptの実行

Firebug>コンソール>コマンドエディタを表示を選択。 右側にエディタが表示 …

no image
【別のチュートリアル】IOS7+Xcode開発_チュートリアルメモ(1)【チャレンジ】

前回までで半端なTODOアプリができあがった。。 物足りないので、最終的にSQL …

no image
メモ

読む備忘 もう、新人と言える年じゃないけど、よくあてはまるー。 ペアプログラミン …

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

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

no image
Android センサーの利用

目的 各センサーを利用してみたい。 参考 http://www.adakoda. …