9

プロジェクトで次のコードを使用していますが、動作していません:

window.onload=function(){
 //code here
};

しかし、最後に () を追加すると動作します:

window.onload=function(){
 //code here
}();

私の質問は、違いは何ですか? 最後の () は何ですか?

「オンロード」がすでに呼び出されているため、最初のものは機能しないと思います。

常に 2 番目のオプションを使用すると、同じ動作になりますか?

4

4 に答える 4

11

()function関数の最後で、宣言の直後にこれを呼び出します

window.onload=function(){
 //code ehere
}() // function is called 

そしてこの場合

window.onload=function(){
 //code here
}; 

関数は後で呼び出されます

window.onload()
于 2013-10-31T14:52:53.553 に答える
5

そのようなラムダ関数の後にある場合()、その行ですぐに関数を呼び出していることを意味します。

たとえば、

var x=function() {
    return 5;
}();
console.log(x);

コンソールに 5 を記録します。の場合

window.onload=function() {
    //code here
}();

その関数は、ページの読み込み時に呼び出される別の関数を返す可能性が最も高いです。

例えば、

window.onload=function() {
    return function() {
        console.log("Hello!");
    };
}();

「こんにちは!」をログに記録します。ページの読み込み時にコンソールに表示されます。

于 2013-10-31T14:56:19.373 に答える
4

functionに割り当てられていますonload

window.onload=function(){
 //code ehere
};

の結果functionが割り当てられますonload

window.onload=function(){
 //code ehere
}();
于 2013-10-31T14:54:57.063 に答える
1

定義し()た関数を使用すると、すぐに呼び出されます。その場合は、window.onload に割り当てる関数を返す方がよいでしょう。

于 2013-10-31T14:54:01.273 に答える