他の人が作ったプログラムを見ていたところ、onloadに、onload = "javascript:・・・"と書かれていて、onload以下を無名関数に変更できないかなと試しに作ってみました。
まずは、scriptタグで下のソースを実行する。
//「test」と表示される。 |
これは、前回、[Javascript]var 変数名=function(){}で書いたように、変数に無名関数をセットした書き方で、前回と違うのはその場で実行をかけたい時に、関数名{}();と関数名のすぐ後に「()」を追加したこと。
次のようにソースを変更し、試してみました。
//エラーになりました。 |
変数名を宣言せずに、その場で実行をかけたいと思い、変数名だけ取り除いたら、エラーが発生しました。
う~~~~~~ん、なぜじゃ~~~~~~。
ちょっと考え、下のように変えると、無事にエラーを抜けました。
//「test」と表示される。 |
その場で実行をかけたい場合は、関数名の前後に「()」でくくる必要があるんですね。
というわけで、これをonloadにもっていくと、onload="(function(){・・・})();"と表現することができます。
さっき、実行してみたら、無事にロード後、ファンクションが実行されました。
0 コメント:
コメントを投稿