新しく質問する

window.onload = cli;はなぜ括弧が必要ないのでしょうか?

役に立った:0件
  • 質問者:reggaepunc
  • 投稿日時:2009/09/01 22:25
  • 困り度:すぐに回答が欲しいです

通常は、
function cli(){
~;
}
をonclickで実行する場合、
onclick = cli();
で動作しますが、
window.onload = cli;
↑で実行する場合はなぜcliの括弧がなくても実行できるのでしょうか。
何か深い意味があるのでしょうか。
素朴な疑問ですが、よろしくお願い致します。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:yambejp
  • 回答日時:2009/09/01 23:45

window.onload = cli()ですと、
cli()を実行した結果(戻り値)をonloadに入れていることになるからNG。

window.onload = cliはwindowオブジェクトのonloadメソッドを
cliという関数(メソッド)に書き換えているという意味です。
ふつうは無名関数をつかって
window.onload = function(){cli();}
的な処理をします。

もっときちんとやるなら、イベントリスナーやらDOMやら
ありますが、まぁそれはおいおい覚えてください。

通報する

この回答へのお礼

うお!すばらしい解説!
javascriptの理解が深まりました。
いや、プログラミングの理解が進んだと思います!
千金の回答です。(一般人とは思えない完璧な回答ではないでしょうか。)

ちなみに、ご回答頂いたような解説を学ぶことができる書籍かwebサイトをご紹介頂けないでしょうか。さらに理解を進めたいと思います。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ