iPhoneのアプリを申請している間、少し時間があいたので、久しぶりにJavaScriptについて。
無名関数を使って引数を右から2文字取り出す関数を考えました。
function gf_TimeFormat(aparam){ |
これを下のように実行してみます。
alert(gf_TimeFormat(0)); |
本来ならば、「00」と表示して欲しいのですが、残念ながら「undefined」と返されてしまいました。
しかし、下記のように一度変数にセットすると、値が返されるのですが、理由がいまひとつわからないのです。
function gf_TimeFormat(aparam){ |
変数にセットしないと関数が評価されないという仕様なのかなーっと、ひらきなおってみる今日この頃。
lambda奥深し!!
(追記)
firefox3で動作確認を行いました。
>>残念ながら「undefined」と返されてしまいました。
返信削除これ、多分
return
(
↑これが問題じゃない?
JavaScriptって改行場所によっては
勝手に終端(セミコロンだね)を付与した形で解釈しちゃうはず。なんで
return (
ってすれば正しく動くのではないかと予測。
相変わらず検証はしてないので試してみておくれ。