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