プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (1件)

window.onload = cli()ですと、


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

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

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

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

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

お礼日時:2009/09/02 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!